web-dev-qa-db-fra.com

SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2ef3, impossible de terminer l'opération en raison de l'erreur 00002ef3

Je continue à recevoir cette erreur lorsque je fais des appels Ajax ...

Cela peut même être quelque chose à voir avec le géocodage mais je ne sais vraiment pas comment capturer l'erreur pour afficher quelque chose d'utile pour les utilisateurs ... ni même comment résoudre le problème car il semble que ce soit juste faire référence à une sorte de pointeur ou quelque chose: S 0x2ef3

SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2ef3, impossible de terminer l'opération en raison de l'erreur 00002ef3. 

Une image peut être plus utile que le message d'erreur:

enter image description here

Des idées du tout?

Mon code déclenche 10 appels ajax en 1 seconde pour être traité par le géocodage côté serveur. 

L'erreur revient par intermittence. Parfois, je reçois des résultats géocodés et parfois, je reçois cette erreur. Je dirais que je le reçois 10% du temps. Cela empêche complètement l'appel ajax de déclencher mon gestionnaire d'erreurs dans jQuery.

69
Jimmyt1988

C'est la solution qui a fonctionné pour moi. Un mime ou un jeu de caractères incorrect est envoyé avec vos données json, ce qui provoque cette erreur. Ajoutez le jeu de caractères comme ceci pour éviter les confusions:

$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function(){
  ...
  }
});

Référence:

Jquery - Comment faire en sorte que $ .post () utilise contentType = application/json?

Impossible de terminer l'opération en raison de l'erreur c00ce56e

30
NickNo

Nous avons également rencontré des problèmes similaires. Toutefois, la définition du jeu de caractères comme indiqué dans le commentaire précédent n'a pas aidé. Notre application faisait une demande AJAX toutes les 60 secondes et notre serveur Web, nginx, envoyait un délai d'attente Keep-Alive à 60 secondes.

Nous avons résolu le problème en définissant la valeur du délai de maintien en vie sur 75 secondes.

C'est ce que nous croyons qu'il se passait:

  1. IE effectue une demande AJAX toutes les 60 secondes en définissant Keep-Alive dans la demande.
  2. En même temps, nginx sait que la valeur du délai d'attente Keep-Alive est ignorée par IE. Il démarre donc le processus de fermeture de la connexion TCP (dans le cas de FF/Chrome, il est démarré par le client).
  3. IE reçoit la demande de connexion fermée pour la demande précédemment envoyée. Comme cela n'est pas prévu par IE, il génère une erreur et abandonne l'opération.
  4. nginx semble toujours répondre à la demande même si la connexion est fermée.

Un vidage de Wireshark TCP apporterait davantage de clarté, notre problème est résolu et nous ne souhaitons pas y consacrer plus de temps.

19
Jozef Briss

J'ai reçu la même erreur (SCRIPT7002: XMLHttpRequest: Network Error 0x80004004, Operation aborted), dans notre cas, c'était à cause de la même politique d'origine de JavaScript. 

Notre application Web passait un appel JQuery AJAX sur notre serveur sur le port 8080. L'appel était intercepté et redirigé sur SSL (en raison de règles de serveur obligeant le trafic entrant à utiliser SSL). 

Une fois que notre application Web a été chargée via le port SSL, le problème a été résolu. 

8
Mike R

J'ai eu ce problème, une demande de publication AJAX qui a renvoyé un code JSON échouant, puis renvoyant, avec le:

SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2ef3

erreur dans la console. Sur d'autres navigateurs (Chrome, Firefox, Safari), la même demande AJAX était correcte.

Suivi de mon problème - une enquête a révélé que le code de statut manquait dans la réponse. Dans ce cas, l'erreur interne aurait dû être 500. Cette opération était générée dans le cadre d'une application Web C # utilisant une pile de services nécessitant la définition explicite d'un code d'erreur. 

IE semblait laisser la connexion ouverte au serveur, il a finalement expiré et a «annulé» la demande; malgré la réception du contenu et d'autres en-têtes.

Il y a peut-être un problème avec la façon dont IE gère les en-têtes dans les messages.

La mise à jour de l'application Web pour renvoyer correctement le code d'état a résolu le problème.

J'espère que cela aide quelqu'un!

2
Andrew Keeling

Ce problème s'est produit dans mon projet en raison d'un appel ajax GET avec une longue chaîne xml en tant que valeur de paramètre. Résolu par l'approche suivante: 

$.ajax({
    url: "controller_Method_Name.html?variable_name="+variable_value,
    type: "POST",
    data:{ 
            "xmlMetaData": xmlMetaData // This variable contains a long xml string
    },
    success: function(response)
    {
        console.log(response);
    }
  });

Méthode de classe du contrôleur MVC Inside Spring:

@RequestMapping(value="/controller_Method_Name")
  public void controller_Method_Name(@RequestParam("xmlMetaData") String metaDataXML, HttpServletRequest request)
{
   System.out.println(metaDataXML);
}
2
TRIDIB BOSE

Je suis tombé sur cette question et répond après avoir reçu l'erreur susmentionnée dans IE11 lors de la tentative de téléchargement de fichiers à l'aide de XMLHttpRequest:

var reqObj = new XMLHttpRequest();

//event Handler
reqObj.upload.addEventListener("progress", uploadProgress, false);
reqObj.addEventListener("load", uploadComplete, false);
reqObj.addEventListener("error", uploadFailed, false);
reqObj.addEventListener("abort", uploadCanceled, false);

//open the object and set method of call (post), url to call, isAsynchronous(true)
reqObj.open("POST", $rootUrlService.rootUrl + "Controller/UploadFiles", true);

//set Content-Type at request header.for file upload it's value must be multipart/form-data
reqObj.setRequestHeader("Content-Type", "multipart/form-data");

//Set header properties : file name and project milestone id
reqObj.setRequestHeader('X-File-Name', name);

// send the file
// this is the line where the error occurs
reqObj.send(fileToUpload);

La suppression de la ligne reqObj.setRequestHeader("Content-Type", "multipart/form-data"); a résolu le problème.

Remarque: cette erreur est affichée très différemment dans les autres navigateurs. C'est à dire. Chrome affiche quelque chose de similaire à une réinitialisation de connexion, similaire à ce que Fiddler indique (une réponse vide due à une fermeture de connexion soudaine).

En outre, cette erreur est apparue uniquement lorsque le téléchargement a été effectué à partir d'une machine différente de WebServer (aucun problème sur localhost).

1
Alexei

J'ai eu cette erreur pendant un certain temps et j'ai trouvé un correctif. Ce correctif concerne l’application Asp.net. Strange n’a échoué que dans le mode non compatible IE, mais fonctionne dans Firefox et Crome. Donner accès au dossier de service Webservice pour tous/des utilisateurs spécifiques a résolu le problème. 

Ajoutez le code suivant dans le fichier web.config:

 <location path="YourWebserviceFolder">
  <system.web>
   <authorization>
    <allow users="*"/>
   </authorization>
  </system.web>
 </location>
1
Roy

Je veux juste ajouter ce qui a résolu ce problème pour moi, car il est différent de toutes les réponses ci-dessus.

Les appels ajax à l'origine du problème essayaient de transmettre un objet de données vide. Il semble que IE n’aime pas cela, mais cela ne dérange pas les autres navigateurs.

Pour résoudre ce problème, j'ai simplement supprimé data: {}, de l'appel ajax.

1
tekiegirl

Avec la modification Apache 2 KeepAliveTimeout définissez-le sur 60 ou plus

1
Ankit Tomar

Si aucune de ces solutions n'était suffisamment "claire", IE/Edge ne parvient pas à analyser correctement le champ "données" de votre appel AJAX. Plus que probablement, vous envoyez un objet JSON "codé".

Ce qui a échoué: "data": "{\"Key\":\"Value\"}",

Qu'est-ce qui fonctionne: "data":'{"Key":"Value"}'

0
ROBERT DAWKINS

[RESOLU]

J'ai seulement observé cette erreur aujourd'hui, mais pour moi le code d'erreur était différent.

SCRIPT7002: XMLHttpRequest: Erreur réseau 0x2efd, impossible de terminer l'opération en raison de l'erreur 00002efd.

Cela se passait au hasard et pas tout le temps. mais ce qu’il a remarqué, c’est s’il s’agit d’appels ajax ultérieurs. donc je mettre un peu de retard de 5 secondes entre les appels ajax et résolu.

0
Amit Shah

Ont rencontré le même problème dans mon projet asp.net, à la fin j'ai trouvé que le problème est avec la fonction cible non statique, le problème résolu après avoir mis le mot clé static.

[WebMethod]
public static List<string> getRawData()
0
Derrick.X

Augmenter la directive de l'hôte virtuel pour KeepAliveTimeout à 60 a résolu ce problème pour moi.

0
i.bajrai