ブラウザがajaxリクエストへのリダイレクト応答を受信するとどうなりますか?
ブラウザがajaxリクエストへのリダイレクト応答を受信するとどうなりますか?
サーバーがリダイレクト(別名302応答とLocation:ヘッダー)を送信すると、リダイレクトの後に自動的にブラウザーが続きます。 secondリクエストへの応答(これも別のリダイレクトではないと仮定)は、プログラムに公開されるものです。
実際、302応答が発生したかどうかを検出する機能はありません。 302リダイレクトが200につながる場合、プログラムは元の要求が200に直接つながった場合と同じように動作します。
これは私の経験であり、 仕様に記載されている動作 です。
2016 Update:時間が経ちましたが、良いニュースは新しい fetch()API が提供されることです リダイレクトの処理方法の詳細な制御 、XHRと同様のデフォルトの動作。つまり、fetch()が実装されている場合にのみ機能しますnatative。 fetch()のポリフィルバージョン — XHRに基づいています— XHRの制限が引き続きあります 。幸いなことに、 ネイティブブラウザーサポート はうまく丸められているようです。
ajax-request
は、リダイレクトafaikに従います。実際のコンテンツ(.responseText
、.responseXML
)は、リダイレクト先のページのコンテンツになります。
リダイレクト(status-code
、location-header
)readyState
2または3で、しかしそれについては不明です。