ori*_*yan 4 javascript extjs xmlhttprequest
我正在使用ExtJS将XMLHttpRequest制作到不返回responseText,仅返回204和响应标头TotalNearby的服务。该呼叫可以在Firefox上完美运行,但在Internet Explorer 8上,两个警报框均为空。我究竟做错了什么?
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);
}
});
Run Code Online (Sandbox Code Playgroud)
根据网站http://www.enhanceie.com/ie/bugs.asp,这是IE 7/8错误:
IE0013:IE XMLHTTP实现将204响应代码转换为伪造的1223状态代码
在此处http://dev.jquery.com/ticket/1450中描述 ,如果服务器返回HTTP / 204 No Content响应,则IE中的XMLHTTPRequest对象将返回状态码1223,并删除所有响应头。
这是由URLMon的内部设计工件引起的(如果服务器未响应请求而返回任何内容,则绑定将返回操作异常终止(1223))。
IE8,IE7(可能更早)中的Repros。
解决方法:将“ 1223”视为等同于204。注意:在这种情况下,HTTP标头仍然不可用。
如果您看到的警报为空,则表示IE并未将状态码更改为1223,则该错误的一部分可能已修复。但是,我将更加担心以下声明:
注意:在这种情况下,HTTP标头仍然不可用。
因为这似乎是您面临的问题。您是否需要使用不响应内容的服务?您可能更适合返回带有消息正文的典型响应。
| 归档时间: |
|
| 查看次数: |
3363 次 |
| 最近记录: |