J'ai une demande ajax POST pouvant durer entre 2 secondes et plus de 30 minutes. La demande de publication survient à la suite d'un clic sur un bouton.
Si la demande prend moins d'une minute ou deux, elle revient avec une réponse et tout fonctionne correctement. Toutefois, si la demande dure plus de deux minutes, elle revient avec "Erreur réseau: XMLHttpRequest: erreur réseau 0x2eff, impossible de terminer l'opération en raison de l'erreur 00002eff".
Bien sûr, cela fonctionne bien Firefox et Chrome.
L'application est déployée sur un serveur JBoss avec SSL activé. L'architecture consiste ici en un équilibreur de charge qui dirige la demande vers deux serveurs Jboss.
Internet Explorer
Version: 11.0.9600.180971C Mise à jour: 11.0.25
J'ai essayé ce qui suit mais en vain
1) ajax a mis le cache sur false - n'a pas fonctionné
2) Les paramètres de registre modifiés conformément à https://support.Microsoft.com/en-us/kb/813827 - ne fonctionnaient pas, c’est là que cela devient confus, cela suppose qu’il ne s’agit pas d’un IE chose, mais en même temps cela fonctionne sur chrome et ff donc ce n'est pas un serveur aussi
3) Définissez ajax timeout sur 0 - ne fonctionne pas 4) Ajouté e.preventDefault after $ ('# mdlSgn'). Click (function () {comme jQuery Les demandes Ajax sont annulées sans être annulées 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
});
peut durer entre 2 secondes et plus de 30 minutes
Je suppose que cela est dû à la grande quantité de données à transférer.
J'ai créé un gros uploader de fichiers, capable de gérer des fichiers vidéo de plus de 20 Go et pouvant durer plusieurs heures.
D'après mon expérience, le téléchargement de données volumineuses avec une seule requête ajax peut provoquer des blocages étranges du navigateur (par exemple, mon navigateur Chrome se bloque dans environ 20% des tests de chargement).
Le moyen le plus fiable, ce que j'ai trouvé, est de fractionner les données en morceaux de 1 Mo et de les envoyer séquentiellement au serveur par des requêtes ajax séparées.
Nous passons plusieurs jours à rechercher la cause de ce problème!
Nous n’avons eu ce problème que lorsque nous utilisions tous ces éléments:
Apparemment, il s’agit d’un bogue Windows 10 dans la pile HTTP qui est maintenant résolu dans Windows 10 version 1803 (avril 2018) . Donc, ce problème disparaîtra avec le temps pour les personnes/entreprises utilisant les mises à jour automatiques de Windows. utilisé des versions de Windows 10 WorldWide
Nous avons testé cela sur une version plus ancienne et plus récente de Windows 10 et le problème est résolu.
Une solution temporaire pourrait être:
Dans mon cas, il s’agissait du code de réponse personnalisé (3020) renvoyé par le serveur. Basculé sur 200 et modification de la logique client SPA, cela a résolu le problème.