2012-01-13 11 views
0

私はASP.NET MVC2アプリケーションを開発しましたが、ログイン機能が実装されています。リクエストを処理するASP.Net MVC 2 with ajax requests

私はajax呼び出しを持つ他のビューを持っています。時々、私はログインページを表示するajax呼び出しを見つける。この問題を取り除くための試みにおいて

は、私は状況をシミュレートしようとしましたが、私は自分のアプリケーションから取得したレスポンスコードは、私はASP.Net MVC2を使用していますOK

ある200ました。なぜ私は現在のビューからログインページのリダイレクトのために302サーバーリダイレクトを実際に取得する必要がある200を取得しています。

この状況を処理するように手引きしてください。

答えて

1

なぜ私は302サーバーを実際に取得する必要があるのですか。 現在のビューからログインページのリダイレクトをリダイレクトします。

これは、jQueryがリダイレクトをたどり、200とログインページになるためです。このリクエストがAJAX呼び出しを使用して行われたと仮定して、認証されていないリクエストに対して401ステータスコードを送信するようにASP.NETを設定する非常に洗練された方法を示すfollowing articleをお勧めします。クライアントコードは次のようになります。

$.ajax({ 
    url: '/foo', 
    type: 'POST', 
    data: { foo: 'bar' }, 
    statusCode: { 
     200: function (data) { 
      alert('200: Authenticated'); 
      // Do whatever you was intending to do 
      // in case of success 
     }, 
     401: function (data) { 
      alert('401: Unauthenticated'); 
      // Handle the 401 error here. You can redirect to 
      // the login page using window.location.href 
     } 
    } 
}); 
+0

この記事を指摘してくれてありがとうございます。私はこのモジュールから得られる利益が仕事に値すると思います。しかし、彼はテストしていないと言います。もしあなたがそうしていれば、私に知らせてください。そうでないと、この投稿のコメントをテストして更新します。 – Saravanan

関連する問題