Internet Explorer:SCRIPT7002:XMLHttpRequest:网络错误0x2f7d,由于错误00002f7d无法完成操作

eth*_*ton 13 xmlhttprequest internet-explorer-10

这个问题让我疯了.我们的网络应用程序使用HTTP POST登录用户,现在IE 10正在中止连接并说:

SCRIPT7002: XMLHttpRequest: Network Error 0x2f7d, Could not complete the operation due to error 00002f7d.
Run Code Online (Sandbox Code Playgroud)

以下是我的所有细节

  • IE版本10.0.9.16618,更新版本10.0.6.我也在IE版本10.0.9200.16635,更新版本10.0.7上再现了这个.
  • 该域名正在使用HTTPS.HTTP连接上不会发生此问题
  • 我已经读过因为某种原因IE需要在它可以进行HTTP POST之前获得证书,所以我在POST请求之前运行了HTTP GET,但现在GET错误了.请参阅网络流屏幕截图.GET非常简单,只是一个PING页面,返回"我起来了."
  • Asyn被关闭$ .ajax({type:'POST',url:url,async:false ...}); 我在其他帖子中读到这很重要.
  • 证书很好,见屏幕截图.
  • 如果将该网站添加为"受信任的网站",但这并不是我们正在拍摄的用户体验,那么问题就会消失.
  • 这只是在一个月前开始的.微软最近是否推出了一些新的更新?
  • 我已经读过:http://social.msdn.microsoft.com/Forums/windowsapps/en-US/dd5d2762-7643-420e-880a-9bf75554e383/intermittent-xmlhttprequest-network-error-0x2f7d-could-not-完成操作 - 由于错误.它没有帮助.

截屏:

网络流量: 在此输入图像描述

证书很好:

在此输入图像描述

任何帮助是极大的赞赏.我花了很多时间没有运气.正如您所料,这在Chrome和Firefox中运行良好.如果您需要更多有关正在发生的事情的详细信息,请告诉我们.

谢谢,

Pau*_*tte 4

证书吊销检查可能会阻止初始 JSON POST,但允许 GET 回调后的后续请求

\n
\n

我们最近确定忽略证书吊销检查失败的 URLMon 代码(Win8、Win7 和可能更早版本)不适用于内容上传(例如 HTTP POST)。因此,如果证书吊销检查失败,这对上传来说是致命的(例如,IE 将显示页面无法显示错误消息;其他客户端将显示不同的错误)。然而,这在现实世界中并不重要,因为在大多数情况下,用户首先从目标 HTTPS 站点执行下载 (HTTP GET),结果服务器的证书被缓存并显示“忽略吊销检查失败”进程生命周期内的豁免,因此后续的 POST 会继承该标志并成功。如果当前进程中对 HTTPS 站点的第一个请求是上传(例如跨源 POST 请求),则上传会失败。

\n
\n

下面是它的工作原理:

\n
\n

一点背景知识:当 Web 浏览器发起与 Web 服务器的 HTTPS 握手时,服务器立即发送数字证书。服务器的主机名列在数字证书中,浏览器将其与尝试访问的主机名进行比较。如果这些主机名不匹配,浏览器会引发错误。

\n

如果将单个 IP 配置为托管多个站点(有时称为 \xe2\x80\x9cvirtual-hosting\xe2\x80\x9d),则匹配主机名要求会导致问题。通常,虚拟托管服务器检查 HTTP 主机请求标头以确定要返回的 HTTP 内容。但是,在 HTTPS 情况下,服务器在从浏览器接收 HTTP 标头之前必须提供数字证书。SNI 通过在与安全服务器初始客户端握手的 SNI 扩展字段中列出目标服务器\xe2\x80\x99s 主机名来解决此问题。虚拟托管服务器可以检查 SNI 扩展以确定将哪个数字证书发送回客户端。

\n
\n

GET 可能是以下operation aborted场景的受害者:

\n
\n

正在解析 HTML 文件,并遇到脚本块。脚本块包含内联脚本,该脚本创建一个新元素并尝试在解析器遇到结束 BODY 标记之前将其添加到 BODY 元素。

\n
\n
<body>\n  <div>\n    <script>document.body.appendChild(newElem)</script>\n  </div>\n</body>\n
Run Code Online (Sandbox Code Playgroud)\n
\n

请注意,如果我删除了该<div>元素,则不会出现此问题,因为脚本块的直接父级将是 BODY,并且脚本块的直接父级不受此问题的影响。

\n
\n

参考

\n\n