IE10/IE11 Abort Post Ajax Request After Clearing Cache with error "Network Error 0x2ef3"

23,375

Solution 1

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.

Solution 2

I had this problem, an AJAX Post request that returned some JSON would fail, eventually returning abort, with the:

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3

error in the console. On other browsers (Chrome, Firefox, Safari) the exact same AJAX request was fine.

Further investigation revealed that the response was missing the status code - in this case it should have been 500 internal error.

This was being generated as part of a C# web application using service stack that requires an error code to be explicitly set.

IE seemed to leave the connection open, eventually network layer closed it and it 'aborted' the request; despite receiving the content and other headers.

Updating the web application to correctly return the status code fixed the issue.

Perhaps there is an issue with how IE is handling the headers in posts.

Hope this helps someone!

Share:
23,375
Laith Shadeed
Author by

Laith Shadeed

I write code. Contact: aGlAbDMuYWk= Key fingerprint = D363 258C ECA2 948E B05E 4C48 1953 0D5C E349 B4D8

Updated on May 26, 2020

Comments

  • Laith Shadeed
    Laith Shadeed almost 4 years

    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: [email protected]/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.