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