Javascript XMLHttpRequest响应在Internet Explorer中没有头
我正在使用ExtJS对一个服务进行XMLHttpRequest,该服务不返回responseText,只返回204和响应头。使用Firefox可以完美地调用,但使用InternetExplorer8时,两个警报框都是空的。我做错了什么Javascript XMLHttpRequest响应在Internet Explorer中没有头,javascript,extjs,xmlhttprequest,Javascript,Extjs,Xmlhttprequest,我正在使用ExtJS对一个服务进行XMLHttpRequest,该服务不返回responseText,只返回204和响应头。使用Firefox可以完美地调用,但使用InternetExplorer8时,两个警报框都是空的。我做错了什么 Ext.Ajax.request({ url: 'services/getNearby', method: 'GET', params: { 'lat': 34, 'lon': -90 },
Ext.Ajax.request({
url: 'services/getNearby',
method: 'GET',
params: {
'lat': 34,
'lon': -90
},
headers: {
'Authorization': AUTH_TOKEN
},
success: function(response) {
if (response.status == 204) {
alert(response.getAllResponseHeaders());
alert(response.getResponseHeader('Total-Nearby'));
}
},
failure: function(response) {
alert('Server status ' + response.status);
}
});
据该网站称,这是一个IE 7/8错误:
IE0013:IE XMLHTTP实现
将204响应代码转换为伪代码
1223状态代码
这里描述
这个
IE中的XMLHTTPRequest对象将
返回状态代码1223并删除
所有响应头,如果服务器
返回一个HTTP/204无内容文件
答复
这是由内部设计引起的
URLMon的工件(绑定返回)
如果服务器发生故障,操作中止(1223)
不返回任何内容以响应
请求)
在IE8、IE7(可能还有
早些时候)
解决方法:将“1223”视为等效项
到204。注意:HTTP头仍然存在
在这种情况下不可用
如果您看到的是空警报,这意味着IE没有将状态代码更改为1223,那么该部分错误可能已经修复。然而,我更担心的是这种说法:
注意:在这种情况下,HTTP头仍然不可用
因为这似乎是你面临的问题。您是否需要使用不响应内容的服务?您可能更适合返回带有消息正文的典型响应。幸运的是,我可以更改服务。谢谢204是rfc规范定义的典型状态代码。@user2524908在我的回答中,我在哪里暗示204不是规范定义的正确状态代码?这是IE7/8不能正确处理ajax 204s的一个问题,如我在上面的回答中所述。