我正在尝试创建一个 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控制台中收到任何文本。
编辑:这是修改后的代码:
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。
提前致谢 !