小编Lai*_*eed的帖子

IE10/IE11在清除缓存后中止后发布Ajax请求,并显示错误"网络错误0x2ef3"

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作

目前没有有效的解决方案.

更新:也在IE11上注意到.

经过越来越多的调查,我得到了这样的结果:

  1. 问题是我的应用程序特有的,它不会发生在Facebook上.
  2. 这个问题与每个主机的最大请求数无关(我做了充斥服务器的示例页面,IE10能够同时处理多达8-10个请求,在我的应用程序中我也尝试连续执行ajax请求,它也失败了).
  3. 该问题特定于POST请求.
  4. 问题并不是特定于使用的JS库(我尝试从控制台直接使用XMLHttpRequest也失败了).
  5. 失败发生在xhr.send(),xhr.readyState = 4和xhr.onreadystatechange触发之后.
  6. 该故障与任何内容类型,正确请求或服务器配置无关.它只是客户端,请求虚拟页面将失败,只有最小的XHR,只有xhr.open和xhr.send.
  7. 它主要发生在清除浏览器缓存之后.
  8. 在POST之前执行GET请求不能解决此问题.

我的问题是:

  1. 浏览器缓存如何影响POST ajax请求?
  2. 是否有任何机构与IE开发人员联系,告诉我们这个错误'网络错误0x2ef3'映射到了什么?

现在,我正在做的临时解决方案是,如果HTTP状态代码为零,则只重试最多3次.但它非常难看,因为即使上传请求有时也会失败,并且对于那些重试的请求变得缓慢,有时需要额外的100毫秒.

重现步骤:

  1. 确保禁用fiddler或代理.
  2. http://ie10.laiths.name/#!login
  3. 打开IE10控制台,删除浏览器缓存.
  4. 尝试此无效登录:random@rand.com/random
  5. 3-4次(清除缓存/无效登录)后,您将看到以下错误:SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作.

我的IE版本:

  • Win7 IE10版本:10.0.9200.16618
  • 更新版本:10.0.6(KB2838727)

现在我正在解决它,如果browser is IE10&& Request is POST&& 重试最多3次HTTP status code is 0.

如果有人可以帮我删除我丑陋的解决方案,我将不胜感激,因为有了这样的解决方案,即使请求进入服务器并且它返回0我也会重试(我试图通过测量xhr.send之间的时间来避免这种情况)和它的回调但它不可靠),如果IE10在comptMode中,如果IE11有同样的问题,添加到那个性能,它将占用我的机器〜每次重试之间的170ms.

javascript ajax post xmlhttprequest internet-explorer-10

29
推荐指数
1
解决办法
2万
查看次数