0

私の 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 を返すかは予測できません。また、サーバー側もわかりません。

4

0 に答える 0