私はAjaxリクエストを作成しようとしており、レスポンスヘッダーを解析して「Location」属性を取得しようとしています。これは私のコードです:「Ajaxリクエストですが内容はありません
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if(request.readyState == 4 && request.status == 301) {
alert('test');
var header = request.getResponseHeader('Location');
console.log(header);
}
}
request.open('GET', hrefAttr, true);
request.send(null);
問題は、何らかの理由で、リクエストが送信し、応答があまりにも受信する(Firebugの中に赤い「GET」要求+応答)であるということですが、私はいずれかを得ることはありませんテスト "アラートやFirebugコンソールのテキストは表示されません。
EDIT:これは、修正されたコードである:
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
console.log(request.readyState);
if(request.readyState <= 3 && request.status == 301) {
alert('test');
var header = request.getResponseHeader('Location');
console.log(header);
}
else if (request.readyState == 0 && request.status == 301) {
alert('state0');
}
}
request.open('GET', hrefAttr, true);
request.send();
にconsole.log(request.readyState)状態のこのシーケンスを与える:1、1、2、4
FirebugのコンソールタブでHttp Request + Responseは正常に表示されますが、赤で表示されます(何かを意味する場合)。
なぜ私はそれが働いていないのか分かりません... 編集:私はFirefoxを使用しています。
ありがとうございます!
応答コードは301ですか? – Gary
はい、ヘッダーに「HTTP/1.1 301 Moved」と表示されます。 –
レディステートはどうですか、それは偶然0ですか? – Gary