返された jqXHR オブジェクトが別のリクエストからリダイレクトされたかどうかを知る方法はありますか? たとえば、次のコードがあります。
jQuery.ajax({
type: 'POST',
url: 'http://example.com/page.html',
complete: function(response, status) {
console.log(response.statusCode);
// do something
}
});
ajax URL が 301 または 302 ステータス コードでリダイレクトされた場合、応答はリダイレクトされたページの結果になり、200 (OK) ステータス コードが返されます。これはjQueryのバグだと思います(最終的な応答が実際に成功したため、これが意図した動作であるかどうかはよくわかりません)元の応答ヘッダーを取得して、ロケーションヘッダーが存在するかどうかを確認することもできません。リダイレクトされたリクエストでのみ使用できます。
上記のコードを使用した Firebug は、XHR を介してこれら 2 つのリクエストをログに記録します
http://example.com/page.html 302 (一時的に移動) http://example.com/redirect.html 200 (OK)
ただし、jQuery は 2 番目のリクエストからのデータのみを返します。
たぶん、最初のリクエストからデータを取得する方法はありますか? または、応答 URL を取得して、元の要求のものと比較するには?