asp.net MVC アプリケーションでフォーム認証を使用しており、jquery と ajax を使用してリッチ ユーザー インターフェイスを作成しています。一部のユーザーは、何時間もページを開いたままにする傾向があり、そのログイン セッションは予期したとおりに期限切れになります。ユーザーがリンクをクリックするか、ページをリロードすると、期待どおりにログイン画面が返されます。ボタンをクリックするか、ajax 呼び出しをトリガーすると、ajax 呼び出しは、予期される html または JASON の結果ではなく、ログイン html を返します。その結果、ログイン画面の半分が表示された、壊れたページが表示されます。
すでに多くの ajax 呼び出しをコーディングしているので、デフォルトの .done イベントを拡張またはオーバーライドして、プログラムしたイベントを続行する前にログイン画面のチェックを追加できると考えました。
たとえば、私はこの機能を持っています:
function CallAjax() {
$.ajax({type: "GET", url: "foo" })
.done(function (data) { $('#result').val(data); });
}
.done のデフォルトの実装をオーバーライドすることは可能ですか? この関数を書き換えずにチェックしてください。私のチェックでは、おそらく結果がhtml応答であるかどうかを確認するため、「ログイン」を検索してログインページかどうかを確認します。