【发布时间】:2013-04-11 11:14:30
【问题描述】:
我遇到了这个问题。我想这是某种 IE 错误,但我想确定一下。
所以问题是。为什么 IE10 XmlHttpRequest.status 返回 0 而不是 401?
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("rescode").innerHTML="Request completed with status: "+xmlhttp.status;
}
}
xmlhttp.open("GET","http://hosting.gregy.cz/cors/",true);
xmlhttp.send();
在此处查看 plunker:http://plnkr.co/edit/E2lCflPDHHaQi7t79IeM?p=preview
此代码触发 CORS 请求,该请求始终返回 401。Firefox 和 chrome 在状态属性中正确返回 401,但 IE10 返回 0。此问题破坏了我用于项目的身份验证处理方法。
谢谢
编辑:
我已经用 onload 和 onerror 事件处理程序修改了 plunker(来自 monsur 评论的提示),但结果仍然相同。
我还确定 IE10 没有选择兼容模式。 (来自 cernunnos 评论的提示)
【问题讨论】:
-
@rekire:CORS 是一种规避 SOP 的方法。这不是重复的。
-
IE10 应该支持 CORS,并且您的服务器响应似乎有必要的标头,您确定您的 IE10 没有在兼容模式下运行吗?也许是 IE9/8/7 浏览器模式/文档模式?
-
尝试附加到较新的
onload和onerror方法,看看你在每个方法中得到了什么。
标签: javascript xmlhttprequest cors internet-explorer-10