Javascript – IE10/IE11 Abort Post Ajax Request After Clearing Cache with error “Network Error 0x2ef3”

ajaxinternet-explorer-10javascriptpostxmlhttprequest

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

No valid solution at the moment.

Update: Noticed on IE11 also.

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

  1. The problem is specific to my application, it does not happen on facebook.
  2. The problem has nothing to do with max number of requests per host (I did sample page that flood the server, IE10 is able to handle up to 8-10 req at the same time, inside my application I also tried to do ajax requests serially, it failed also).
  3. The problem is specific to POST requests.
  4. The problem is not specific to the JS library used (I tried direct XMLHttpRequest from console it also failed).
  5. The failure happened after xhr.send(), xhr.readyState = 4 and xhr.onreadystatechange triggered.
  6. The failure is not related to any Content-type, proper requests or server configuration. It is only client, requesting dummy page will fail, with a bare minimum XHR, just xhr.open and xhr.send.
  7. It happened mainly after clearing browser cache.
  8. Doing GET request before POST does not solve this problem.

My questions are:

  1. How browser cache may affect POST ajax requests?
  2. Does any body have contact with IE developers to tell us what this error 'Network Error 0x2ef3' mapped to ?

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.

Steps to reproduce:

  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.

My IE Version:

  • Win7 IE10 Version: 10.0.9200.16618
  • Update Version: 10.0.6 (KB2838727)

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.

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.

Best Answer

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

You can find more information (and a workaround) in http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/

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