javascript ajax internet-explorer post jboss

javascript - IE11 HTTPS AJAX XMLHttpRequest: Error de red 0x2eff, No se pudo completar la operación debido al error 00002eff



internet-explorer post (3)

Puede tardar entre 2 segundos y más de 30 minutos.

Supongo que esto se debe a la gran cantidad de datos a transferir.

He creado un cargador de archivos de gran tamaño, que maneja archivos de video de más de 20 GB y puede durar varias horas.

En mi experiencia, cargar datos grandes con una sola solicitud de ajax puede causar fallos extraños en el navegador (por ejemplo, mi navegador Chrome se bloquea en aproximadamente el 20% de las pruebas de carga).

Lo que encontré, la forma más confiable, es dividir los datos en partes de 1 MB y enviarlos secuencialmente al servidor mediante solicitudes separadas de ajax.

Tengo una solicitud POST ajax que puede tardar entre 2 segundos y más de 30 minutos. La solicitud de publicación se produce como resultado del clic del botón

Si la solicitud demora menos de uno o dos minutos, vuelve con una respuesta y todo funciona bien. Sin embargo, si la solicitud tarda más de dos minutos, vuelve con "Error de red: XMLHttpRequest: Error de red 0x2eff, No se pudo completar la operación debido al error 00002eff".

Por supuesto, funciona bien Firefox y Chrome.

La aplicación se implementa en un servidor JBoss con SSL habilitado. La arquitectura aquí es que tenemos un equilibrador de carga que enruta la solicitud a dos servidores Jboss.

explorador de Internet

Versión: 11.0.9600.180971C Actualización: 11.0.25

He intentado lo siguiente pero en vano

1) ajax configuró el caché en falso - no funcionó

2) Se modificó la configuración de registro según https://support.microsoft.com/en-us/kb/813827 - no funcionó, aquí es donde se vuelve confuso, esto sugiere que no es una cosa de IE, pero al mismo tiempo esto funciona en Chrome y FF por lo que no es una cosa del servidor también

3) Establezca el tiempo de espera de ajax en 0 - no funcionó 4) Se agregó e.preventDefault después de $ (''# mdlSgn''). Haga clic en (function () {según jQuery Las solicitudes de Ajax se cancelan sin ser enviadas

$(''#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 });


En mi caso fue un código de respuesta personalizado (3020) devuelto desde el servidor. Se cambió a 200 y se modificaron las lógicas del cliente SPA, esto solucionó el problema.


Pasamos varios días buscando la causa de este problema!

  • En la consola: SCRIPT7002: XMLHttpRequest: Error de red 0x2eff, No se pudo completar la operación debido al error 00002eff.
  • En la pestaña de red de IE / Edge, vemos la solicitud fallida como ''Pendiente ...''
  • XmlHTTPRequest / JQuery devuelve un error 404 en el cliente, pero el servidor devolvió una respuesta exitosa de 200.

Solo tuvimos este problema cuando usamos todo esto:

  • HTTP / 2
  • Solicitudes POST
  • Windows 10
  • IE o Edge

Aparentemente, es un error de Windows 10 en la pila HTTP que ahora se resuelve en Windows 10 versión 1803 (abril de 2018). Por lo general, este problema desaparecerá con el tiempo para las personas / empresas que utilizan las actualizaciones automáticas de Windows. utiliza las versiones de Windows 10 WorldWide

Probamos esto en una versión más antigua y nueva de Windows 10 y, de hecho, está resuelto.

Una solución temporal podría ser:

  • deshabilite HTTP / 2 para IE y Edge y use HTTPS (lado del servidor).
  • usar GET (si es posible)
  • ¿PUT también tiene este problema?
  • hacer algunos intentos
  • acepta que los usuarios de IE / Edge serán castigados ;-)