私の Web ページでは、Ajax リクエストを送信してから別のページにジャンプすることができます。つまり、AJAX リクエストは無関係であり、ブラウザによって中止されます。これらの jquery AJAX リクエストの 1 つからエラー処理への戻りは、次のようになります。
readyState = 0
responseText: ""
status=0
ただし、エラー ハンドラが呼び出されない場合があることに注意してください。ブラウザーが要求を中止するタイミングと、ユーザーが別のページに移動することを選択するタイミングによって異なります。呼び出される場合は、上記のパラメーターで呼び出されます。
ここがジューシーになるところです。場所が別のドメインに設定されている場合に、AJAX 要求から 302 リダイレクトが返されると、同様の応答が発生します。ブラウザー (IE と FF の両方) は 302 をマングルし、同じ情報でエラー ハンドラーを呼び出します。
readyState = 0
responseText: ""
status=0
フィドラーを使用して場所が別のドメインに設定された 302 であることはわかっています。しかし、フィドラーを取り除けば、見えるのは上だけです。
区別できるようにする必要があります
- ユーザーが別のページに移動したために中止された ajax リクエスト
- 別のドメインへのリダイレクトであるために中止された ajax リクエスト
しかし、両方でまったく同じ情報が得られた場合はできません。
任意のヒント?DOM 内のウィンドウ オブジェクトなどを確認できますか? location header
注: リクエストがいつ 302 を返すかは予測できません。また、サーバー側もわかりません。