IE11 HTTPS AJAX XMLHttpRequest: Erreur Réseau 0x2eff, impossible de terminer l'opération en raison de l'erreur 00002eff
J'ai un ajax requête POST qui peut prendre n'importe où entre 2 secondes à 30 minutes. Le poste demande survient à la suite d'un clic sur un bouton de
Si la demande prend moins d'une minute ou deux, il revient avec une réponse et tout fonctionne bien. Toutefois, si la demande prend plus de deux minutes, il revient avec "erreur de Réseau: XMLHttpRequest: Erreur Réseau 0x2eff, impossible de terminer l'opération en raison de l'erreur 00002eff".
Bien sûr, il fonctionne très bien Firefox et Chrome.
L'application est déployée sur un serveur JBoss avec SSL activé. L'architecture ici est que nous avons un programme d'équilibrage de charge qui achemine la demande de deux serveurs Jboss.
Internet Explorer
Version: 11.0.9600.180971 C
Mise à jour: 11.0.25
J'ai essayé ce qui suit, mais en vain
1) ajax jeu de cache à de faux n'a pas de travail
2) Modification des paramètres de registre par https://support.microsoft.com/en-us/kb/813827 - n'a pas de travail, c'est ce qui est déroutant, thissuggests il n'est pas un IE chose, mais en même temps, cela ne fonctionne que sous chrome et ff, donc ce n'est pas un serveur de chose trop
3) Définir ajax timeout à 0 ne fonctionne pas
4) Ajout de l'e.preventDefault après $('#mdlSgn').cliquez sur(function() { que par jQuery Ajax requêtes sont annulées sans être envoyé
$('#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
});
- 30 minutes?!?
- Oui je sais qu'il faut 30 minutes et les utilisateurs sont bien avec elle, ils veulent voir une réponse de réussite après que
- Vous avez une certaine compréhension des utilisateurs. Si c'était moi, j'aurais le serveur de répondre immédiatement, mettez la tâche en file d'attente de travail, et d'en notifier quand la chose est faite et les résultats sont disponibles.
- Eh bien c'est une façon de le faire, mais le truc c'est que ça marchait très bien avant et je voulais savoir la cause de pourquoi IE se comporte comme ça?
- Pourquoi ne pas faire le traitement ne fait pas partie de la demande originale (pour le traitement des appels en mode asynchrone et de revenir immédiatement), mais au lieu d'avoir une sorte de statut/demande de l'état, que vous pouvez appeler à intervalles réguliers pour vérifier si le traitement est terminé?
Vous devez vous connecter pour publier un commentaire.
Nous passons plusieurs jours à la recherche de la cause de ce problème!
Nous avons seulement eu ce problème lors de l'utilisation de l'ensemble de ces:
Apparemment c'est un Windows 10 bug dans la pile HTTP qui est résolu dans Windows 10 version 1803 (avril 2018).
Donc, normalement, ce problème disparaîtra au fil du temps pour les personnes ou les sociétés à l'aide de mises à jour automatiques de Windows. utilisé Windows 10 versions dans le Monde entier
Nous l'avons testé sur une ancienne et nouvelle version de Windows 10, et elle est en effet résolu.
Certains solution temporaire pourrait être:
Je suppose que c'est à cause de la grande quantité de données à transférer.
J'ai de la création d'un grand fichier uploader, qui gère les 20 GO+ fichiers vidéo et peut durer plusieurs heures.
Dans mon expérience - mise en ligne de données de grande taille avec une seule requête ajax peut provoquer d'étranges navigateur se bloque (par exemple, mon navigateur google Chrome se bloque à environ 20% de téléchargement de tests).
Le moyen le plus fiable, ce que j'ai trouvé, est de séparer les données en morceaux de 1 MO et de les envoyer de manière séquentielle sur le serveur par des requêtes ajax.
Dans mon cas c'était la coutume code de réponse (3020) sont retournés à partir du serveur. La mise sous tension de 200 et modifié SPA client logiques, cela a résolu le problème.