gpt4 book ai didi

javascript - XmlHttpRequest 状态 0 而不是 IE 10 中的 401

转载 作者:可可西里 更新时间:2023-11-01 01:17:32 26 4
gpt4 key购买 nike

我遇到了这个问题。我想这是某种 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

此代码触发始终返回 401 的 CORS 请求。Firefox 和 chrome 在状态属性中正确返回 401,但 IE10 返回 0。此问题破坏了我用于项目的身份验证处理方法。

谢谢

编辑:

我已经用 onload 和 onerror 事件处理程序修改了 plunker(来自 monsur 评论的提示),但结果仍然相同。

我还确保 IE10 没有选择兼容模式。 (来自 cernunnos 评论的提示)

最佳答案

这似乎是 IE10 中的错误 (https://connect.microsoft.com/IE/feedback/details/785990/ie-10-on-win8-does-not-assign-the-correct-status-to-xmlhttprequest-when-the-result-is-401)。

IE10 将 HTTP 状态 401 视为网络错误。控制台显示:

SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied

根据 XMLHttpRequest Level 2 规范,如果设置了错误标志(例如由于网络错误),状态属性应该为零。然而,规范还指出 ( http://www.w3.org/TR/XMLHttpRequest2/#infrastructure-for-the-send-method ) 网络错误

does not include HTTP responses that indicate some type of error, such as HTTP status code 410.

我认为很明显,HTTP 状态 401 不应因此被视为网络错误(因为它不是在 Chrome、Firefox 和 Safari 中),这是 IE10 中的错误。

关于javascript - XmlHttpRequest 状态 0 而不是 IE 10 中的 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16081267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com