<legend id='zzRJs'><style id='zzRJs'><dir id='zzRJs'><q id='zzRJs'></q></dir></style></legend>
  1. <small id='zzRJs'></small><noframes id='zzRJs'>

    <i id='zzRJs'><tr id='zzRJs'><dt id='zzRJs'><q id='zzRJs'><span id='zzRJs'><b id='zzRJs'><form id='zzRJs'><ins id='zzRJs'></ins><ul id='zzRJs'></ul><sub id='zzRJs'></sub></form><legend id='zzRJs'></legend><bdo id='zzRJs'><pre id='zzRJs'><center id='zzRJs'></center></pre></bdo></b><th id='zzRJs'></th></span></q></dt></tr></i><div id='zzRJs'><tfoot id='zzRJs'></tfoot><dl id='zzRJs'><fieldset id='zzRJs'></fieldset></dl></div>

      • <bdo id='zzRJs'></bdo><ul id='zzRJs'></ul>
    1. <tfoot id='zzRJs'></tfoot>

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

      时间:2023-10-14

      1. <tfoot id='JN57I'></tfoot>

          <small id='JN57I'></small><noframes id='JN57I'>

                <tbody id='JN57I'></tbody>
              <legend id='JN57I'><style id='JN57I'><dir id='JN57I'><q id='JN57I'></q></dir></style></legend>
            • <i id='JN57I'><tr id='JN57I'><dt id='JN57I'><q id='JN57I'><span id='JN57I'><b id='JN57I'><form id='JN57I'><ins id='JN57I'></ins><ul id='JN57I'></ul><sub id='JN57I'></sub></form><legend id='JN57I'></legend><bdo id='JN57I'><pre id='JN57I'><center id='JN57I'></center></pre></bdo></b><th id='JN57I'></th></span></q></dt></tr></i><div id='JN57I'><tfoot id='JN57I'></tfoot><dl id='JN57I'><fieldset id='JN57I'></fieldset></dl></div>

                <bdo id='JN57I'></bdo><ul id='JN57I'></ul>
                本文介绍了XmlHttpRequest 状态 0 而不是 IE 10 中的 401的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                我遇到了这个问题.我想这是某种 IE 错误,但我想确定一下.

                所以问题是.为什么 IE10 XmlHttpRequest.status 返回 0 而不是 401?

                var xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=函数(){如果(xmlhttp.readyState==4){document.getElementById("rescode").innerHTML="请求完成,状态为:"+xmlhttp.status;}}xmlhttp.open("GET","http://hosting.gregy.cz/cors/",true);xmlhttp.send();

                在这里查看插件:http://plnkr.co/edit/E2lCflPDHHaQi7t79IeM?p=previewp>

                此代码触发 CORS 请求,该请求始终返回 401.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:网络错误 0x80070005,访问被拒绝

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

                <块引用>

                不包括指示某种类型错误的 HTTP 响应,例如作为 HTTP 状态码 410.

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

                I have hit a wall with this issue. I guess it is some kind of IE bug but I want to be sure.

                So the question is. Why does IE10 XmlHttpRequest.status returns 0 instead of 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();
                

                See plunker here: http://plnkr.co/edit/E2lCflPDHHaQi7t79IeM?p=preview

                This code fires a CORS request which always returns 401. Firefox and chrome correctly return 401 in status attribute but IE10 returns 0. This issue breaks authentication handling methods I use for my project.

                Thank you

                Edit:

                I have modified the plunker with onload and onerror event handlers (tip from monsur's comment), but the result is still the same.

                I have also made sure IE10 has no compatibility mode selected. (tip from cernunnos's comment)

                解决方案

                This appears to be a bug in 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 is treating HTTP status 401 as a network error. The console shows:

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

                According to the XMLHttpRequest Level 2 specification the status attribute should be zero if the error flag is set (for example because of a network error). However the specification also states (http://www.w3.org/TR/XMLHttpRequest2/#infrastructure-for-the-send-method) that a network error

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

                I think it is clear that HTTP status 401 should not therefore be treated as a network error (as it is not in Chrome, Firefox and Safari) and that this is a bug in IE10.

                这篇关于XmlHttpRequest 状态 0 而不是 IE 10 中的 401的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:如何在 Rails 4 应用程序中启用 CORS 下一篇:由于 CORS 访问限制本地 mp3 文件,MediaElementAudio

                相关文章

                最新文章

                • <bdo id='oXjgf'></bdo><ul id='oXjgf'></ul>
                  <legend id='oXjgf'><style id='oXjgf'><dir id='oXjgf'><q id='oXjgf'></q></dir></style></legend>
                1. <tfoot id='oXjgf'></tfoot>
                  <i id='oXjgf'><tr id='oXjgf'><dt id='oXjgf'><q id='oXjgf'><span id='oXjgf'><b id='oXjgf'><form id='oXjgf'><ins id='oXjgf'></ins><ul id='oXjgf'></ul><sub id='oXjgf'></sub></form><legend id='oXjgf'></legend><bdo id='oXjgf'><pre id='oXjgf'><center id='oXjgf'></center></pre></bdo></b><th id='oXjgf'></th></span></q></dt></tr></i><div id='oXjgf'><tfoot id='oXjgf'></tfoot><dl id='oXjgf'><fieldset id='oXjgf'></fieldset></dl></div>
                2. <small id='oXjgf'></small><noframes id='oXjgf'>