0

ASP.Net MVC アプリでは、ajax 呼び出し中にユーザーがログアウトするか、セッションがタイムアウトした場合、ログオン ページが呼び出し元の JavaScript ajax 呼び出しに html として返されます。これにより、html を解析できないため、クライアントでエラーが発生します。

属性をオーバーライドしたかったhandleunauthorizedrequestauthorizeですが、オーバーライドした後でも、デバッグ中にヒットせず、ログオン ページが返されます。

私の目標は、リクエストが ajax リクエストであり、リクエストが承認されていない場合に401ステータス コードを返すことです。

この問題の解決策は何ですか。なぜ がヒットしないのか、まだ理解できhandleunauthorizedrequestません。上書きされていませんか?

4

4 に答える 4

1

jquery ajax の jqXhr オブジェクトには、次のようにアクセスできる状態プロパティがあります。

 jqXhr.state()

state プロパティの値が「rejected」の場合は、json の結果が返されず、呼び出しが拒否されたことを意味します。

このプロパティの値を使用して、セッションがタイムアウトしたかどうかを判断し、正常にログイン ページにリダイレクトできました。

于 2013-05-11T23:09:51.627 に答える