Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IE11 HTTPS AJAX XMLHttpRequest: Network Error 0x2eff, Could not complete the operation due to error 00002eff

I have an ajax POST request that can take anywhere between 2 seconds to 30+ minutes. The post request occurs as a result of button click

If the request takes less than a minute or two, it comes back with a response and everything works fine. However if the request takes longer than two minutes it comes back with "Network error: XMLHttpRequest: Network Error 0x2eff, Could not complete the operation due to error 00002eff".

Ofcourse, it works fine Firefox and Chrome.

The application is deployed on a JBoss server with SSL enabled. The architecture here is that we have a load balancer that routes the request to two Jboss servers.

Internet Explorer

Version: 11.0.9600.180971C Update: 11.0.25

I have tried the following but in vain

1) ajax set cache to false - did not work

2) Changed registry settings as per https://support.microsoft.com/en-us/kb/813827 - did not work, here is where it gets confusing, thissuggests it is not an IE thing, but at the same time this works on chrome and ff so its not a server thing too

3) Set ajax timeout to 0 - did not work 4) Added e.preventDefault after $('#mdlSgn').click(function() { as per jQuery Ajax requests are getting cancelled without being sent

$('#mdlSgn').click(function() {
    $('#cnfdsgl').modal('hide');

     $.ajax({
        url: ajaxUrl,
        type: "POST",
        data: JSON.stringify(input),
        contentType: "application/json; charset=UTF-8",
        dataType: "json",
        success: function(data) {
             /// some logic


        },
        error : function(jqXhr, textStatus, errorThrown) {
            /// some logic
        }
    });

 //some other logic
}); 
like image 889
Nikhil Das Nomula Avatar asked Dec 02 '15 18:12

Nikhil Das Nomula


3 Answers

We spend multiple days searching for the cause of this problem!

  • In the console: SCRIPT7002: XMLHttpRequest: Network Error 0x2eff, Could not complete the operation due to error 00002eff.
  • In the network tab of IE/Edge, we see the failed request as 'Pending...'
  • XmlHTTPRequest/JQuery returns 404 error at the client, but the server returned a successfully 200 response.
  • No response headers returned

We only had this problem when using all of these:

  • HTTP/2
  • POST requests
  • Windows 10
  • IE or Edge

Apparently it is a Windows 10 bug in the HTTP stack that is now solved in Windows 10 version 1803 (April 2018). So normally this problem will disappear over time for people/companies using auto updates of Windows. used Windows 10 versions WorldWide

We tested this on an older and newer version of Windows 10 and it is indeed solved.

Some temporary solution could be:

  • disable HTTP/2 for IE and Edge and use HTTPS (server side change).
  • use GET (if possible)
  • does PUT also has this problem?
  • do some retries if no response headers are returned
  • accept that IE/Edge users will be punished ;-)
like image 143
Jo VdB Avatar answered Nov 17 '22 09:11

Jo VdB


can take anywhere between 2 seconds to 30+ minutes

I assume this is because of large amount of data to transfer.

I have creating large file uploader, that handles 20GB+ video files and may last for several hours.

In my experience - uploading large data with single ajax request can cause strange browser crashes (for example my Chrome browser crashes in about 20% of upload tests).

The most reliable way, what I found, is to split data in chunks of 1MB and send them sequentially to the server by separate ajax requests.

like image 7
ujeenator Avatar answered Nov 17 '22 09:11

ujeenator


In my case it was custom response code (3020) returned from server. Switched it to 200 and modified SPA client logics, this solved the issue.

like image 1
aleha Avatar answered Nov 17 '22 08:11

aleha