IE10 / IE11中止后的Ajax请求清除缓存后,错误"网络错误0x2ef3" [英] IE10/IE11 Abort Post Ajax Request After Clearing Cache with error "Network Error 0x2ef3"

查看:852
本文介绍了IE10 / IE11中止后的Ajax请求清除缓存后,错误"网络错误0x2ef3"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3

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

No valid solution at the moment.

更新:注意到了IE11还

Update: Noticed on IE11 also.

在越来越多的调查,我来到这个结果:

After more and more investigation, I come with this results:

  1. 现在的问题是具体到我的应用程序,它不会发生在Facebook上。
  2. 问题无关,每个主机的请求的最大数量(我没有样品网页,充斥服务器,IE10能够处理多达8-10 REQ的同时,我的应用程序里面我也试着做Ajax请求顺序,它失败了也)。
  3. 的问题是特定于POST请求。
  4. 的问题是不特定于所使用的JS库(我试图从控制台它也没有直接XMLHtt prequest)。
  5. 在故障发生xhr.send()后,xhr.readyState = 4和xhr.onreadystatechange触发。
  6. 故障是不相关的任何内容类型,适当的请求或服务器配置。它只是客户端,请求伪页面会失败,以最低限度XHR,只是xhr.open和xhr.send。
  7. 在它发生主要是清除浏览器缓存后。
  8. 执行GET请求,POST之前没有解决这个问题。

我的问题是:

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

对于现在的临时解决方案,我做的是简单地重试了最多3次,如果HTTP状态code为零。但它是非常丑陋的,因为即使是上传请求有时会失败,并成为与重试这些请求慢,有时会采取额外的100毫秒。

For now the temporary solution I am doing is simply retry for a max 3 times if the HTTP status code was zero. But it is very ugly because even upload requests sometimes failed, and it become slow for those requests with retry, sometimes it will take extra 100ms.

重现步骤:

  1. 确保小提琴手或代理被禁用。
  2. http://ie10.laiths.name/#!login
  3. 开启IE10控制台,删除浏览器的缓存。
  4. 尝试这个无效的登录:random@rand.com/random
  5. 在3-4倍(清除缓存/无效,登录),你会看到这样的错误:SCRIPT7002:XMLHtt prequest:网络错误0x2ef3,不能完成由于错误00002ef3操作。
  1. Make sure fiddler or proxy is disabled.
  2. http://ie10.laiths.name/#!login
  3. Open IE10 console, delete your browser cache.
  4. Try this invalid login: random@rand.com/random
  5. After 3-4 times (clear-cache/invalid-login) you will see this error: SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3.

我的IE浏览器版本:

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

现在我解决它通过重试一个最大的3倍,如果浏览器IE10 &功放;&安培; 请求是POST &功放;&安培; HTTP状态code为0

For now I am solving it by retrying a max of 3 times if the browser is IE10 && Request is POST && HTTP status code is 0.

我会AP preciate如果有人可以帮助我消除我的丑陋的解决方案,因为这样的解决方案,即使请求进入到服务器并返回0我也将重试(我试图避免通过测量xhr.send和其回调的时间,但它是不可靠的),如果左右IE10在comptMode,那么如果IE11有同样的问题,添加到性能,它会采取什么我的机器〜170ms每个重试之间。

I would appreciate if somebody can help me to remove my ugly solution, because with such solution even if the the request goes to the server and it returns 0 I will also retry (I was trying to avoid that by measuring the time between xhr.send and its callback but it is not reliable), what about if IE10 in comptMode, what about if IE11 has same problem, add to that performance, it will take on my machine ~170ms between each retry.

推荐答案

这可以发生因安全证书的问题。如果您清除证书信息的缓存你失去一部分(如果不是全部)。

This can be happening due a security certificate issue. If you clear the cache you loose part (if not all) of certificate information.

您可以找到的http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/

基本上,它说你必须以更新的证书信息的POST请求之前,做一个GET。

Basically it says you must do a GET before your POST request in order to update the certificate information.

这篇关于IE10 / IE11中止后的Ajax请求清除缓存后,错误"网络错误0x2ef3"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆