SCRIPT7002: XMLHttpRequest: Netzwerkfehler 0x2ef3, Vorgang konnte aufgrund des Fehlers 00002ef3 nicht abgeschlossen werden

77

Ich erhalte diesen Fehler immer wieder, wenn ich Ajax-Anrufe tätige ...

Es mag sogar etwas mit Geokodierung zu tun haben, aber ich habe wirklich keine Ahnung, wie man den Fehler erfasst, um etwas Nützliches für Benutzer anzuzeigen ... oder wie man das Problem löst, da es nur auf eine Art Zeiger oder etwas anderes zu verweisen scheint: S 0x2ef3

SCRIPT7002: XMLHttpRequest: Netzwerkfehler 0x2ef3, Vorgang konnte aufgrund des Fehlers 00002ef3 nicht abgeschlossen werden.

Ein Bild ist möglicherweise hilfreicher als die Fehlermeldung:

Geben Sie hier die Bildbeschreibung ein

Irgendwelche Ideen überhaupt?

Mein Code löst in 1 Sekunde 10 Ajax-Aufrufe aus, die vom Geokodierungsserver verarbeitet werden.

Der Fehler tritt zeitweise auf. Manchmal erhalte ich geokodierte Ergebnisse und manchmal erhalte ich diesen Fehler. Ich würde sagen, ich bekomme es 10% der Zeit. Es verhindert vollständig, dass der Ajax-Aufruf meinen Fehlerbehandler in jQuery auslöst.

Jimmyt1988
quelle
2
Machen Sie eine console.dir (Anfrage), um den Inhalt des XMLHttpRequest-Objekts anzuzeigen, überprüfen Sie den Status und die Readystate-Werte sowie die Antwort und den Antworttext
Mariano Montañez Ureta
1
Selbes Problem hier. Verwenden von https in IISExpress mit selbstsigniertem Zertifikat. Seltsamerweise verschwindet dieses Problem, wenn ich TLS (alle Versionen) in den erweiterten Einstellungen in Internet Explorer deaktiviere und mindestens eine SSL-Version überprüfen lasse.
Frode
Deaktivieren Sie das HTTP / 2-Protokoll in den IE-Optionen. stackoverflow.com/questions/56079289/disable-http2-in-ie11
Vinay Vivekananda

Antworten:

29

Dies ist das Update, das bei mir funktioniert hat. Es wird eine ungültige MIME oder ein ungültiger Zeichensatz mit Ihren JSON-Daten gesendet, der diesen Fehler verursacht. Fügen Sie den Zeichensatz wie folgt hinzu, um Verwirrung zu vermeiden:

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

Referenz:

Jquery - Wie kann $ .post () contentType = application / json verwenden?

Der Vorgang konnte aufgrund des Fehlers c00ce56e nicht abgeschlossen werden

NickNo
quelle
5
Sie mischen hier zwei Dinge: Response.ContentType scheint eine serverseitige Sache zu sein, die sicherstellt, dass der Server einen Zeichensatz in den Inhaltstyp für seine Antwort einfügt. Der contentType im Aufruf von $ .ajax teilt dem Browser mit, welcher Inhaltstyp beim Senden der Anforderung an den Server verwendet werden soll. Das eine ist also keine Alternative für das andere.
Wichert Akkerman
1
Beachten Sie, dass sich dieser Fehler (c00ce56e) vom OP (00002ef3) unterscheidet. Ich glaube, 00002ef3 ist der Zertifikatfehler, der in stackoverflow.com/a/32106649/1446634
Ewout
Ich sehe, dass die Fehler-ID während meines aktuellen Kampfes mit demselben Verbindungsversuch variiert, daher würde ich nicht annehmen, dass es sich um mehr als eine Art Offset handelt.
Kungphu
1
"... verursacht diesen 'Fehler'"
Andrew Koper
22

Wir sind auch auf ähnliche Probleme gestoßen. Das Einstellen des Zeichensatzes wie im vorherigen Kommentar angegeben hat jedoch nicht geholfen. Unsere Anwendung stellte alle 60 Sekunden eine AJAX-Anfrage und unser Webserver, nginx, sendete ein Keep-Alive-Timeout nach 60 Sekunden.

Wir haben das Problem behoben, indem wir den Keep-Alive-Timeout-Wert auf 75 Sekunden festgelegt haben.

Wir glauben, dass dies geschah:

  1. IE stellt alle 60 Sekunden eine AJAX-Anfrage und setzt in der Anfrage Keep-Alive.
  2. Gleichzeitig weiß nginx, dass der Keep-Alive-Timeout-Wert vom IE ignoriert wird, sodass der Prozess zum Schließen der TCP-Verbindung gestartet wird (im Fall von FF / Chrome wird dieser vom Client gestartet).
  3. IE empfängt die Anforderung zum Schließen der Verbindung für die zuvor gesendete Anforderung. Da dies vom IE nicht erwartet wird, wird ein Fehler ausgegeben und der Vorgang abgebrochen.
  4. nginx scheint immer noch auf die Anfrage zu antworten, obwohl die Verbindung geschlossen ist.

Ein Wireshark TCP-Dump würde mehr Klarheit schaffen, unser Problem ist behoben und wir möchten nicht mehr Zeit damit verbringen.

Jozef Briss
quelle
Durch Festlegen des Zeitlimits auf 60 wurde dieses Problem auch auf zwei von mir verwalteten Websites behoben. Ich bin froh, dass es eine schnelle Lösung für IE gab.
Josh
10

Ich habe den gleichen Fehler ( SCRIPT7002: XMLHttpRequest: Network Error 0x80004004, Operation aborted) erhalten, in unserem Fall aufgrund der gleichen Ursprungsrichtlinie von JavaScript.

Unsere Web-App hat einen JQuery AJAX-Anruf an unseren Server in Port 8080 getätigt. Der Anruf wurde abgefangen und über SSL umgeleitet (aufgrund von Serverregeln, die vorschreiben, dass eingehender Datenverkehr SSL verwendet).

Nachdem wir unsere Web-App über den SSL-Port geladen hatten, wurde das Problem behoben.

Mike R.
quelle
Wie haben Sie Ihre Web-App über den SSL-Port geladen?
Ciaran Gallagher
2

Ich hatte dieses Problem, eine AJAX Post-Anfrage, die etwas JSON zurückgab, schlug fehl und gab schließlich den Abbruch zurück mit:

SCRIPT7002: XMLHttpRequest: Netzwerkfehler 0x2ef3

Fehler in der Konsole. In anderen Browsern (Chrome, Firefox, Safari) war genau dieselbe AJAX-Anfrage in Ordnung.

Ich habe mein Problem aufgespürt - eine Untersuchung ergab, dass der Antwort der Statuscode fehlte. In diesem Fall sollte es 500 interne Fehler gewesen sein. Dies wurde als Teil einer C # -Webanwendung mithilfe eines Service-Stacks generiert, für den ein Fehlercode explizit festgelegt werden muss.

IE schien die Verbindung zum Server offen zu lassen, schließlich trat eine Zeitüberschreitung auf und die Anfrage wurde abgebrochen. trotz Erhalt des Inhalts und anderer Header.

Möglicherweise gibt es ein Problem damit, wie der IE mit den Headern in Posts umgeht.

Durch das Aktualisieren der Webanwendung zur korrekten Rückgabe des Statuscodes wurde das Problem behoben.

Hoffe das hilft jemandem!

Andrew Keeling
quelle
Können Sie den vollständigen Fehler als Referenz veröffentlichen? Network Error 0x2ef3ist ein allgemeiner Fehler, auf den wahrscheinlich ein spezifischerer Fehlercode folgt.
Ewout
2

Dieses Problem trat in meinem Projekt aufgrund eines Ajax-GET-Aufrufs mit einer langen XML-Zeichenfolge als Parameterwert auf. Durch den folgenden Ansatz gelöst: Als Ajax-Post-Aufruf der Java Spring MVC-Controller-Klassenmethode wie folgt.

$.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);
    }
  });

Innerhalb der Spring MVC Controller-Klassenmethode:

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

Ich hatte diesen Fehler für einige Zeit und fand eine Lösung. Dieses Update ist für die Asp.net-Anwendung vorgesehen. Seltsamerweise ist es nur im IE-Nichtkompatibilitätsmodus fehlgeschlagen, funktioniert jedoch in Firefox und Crome. Das Problem wurde behoben, indem allen / bestimmten Benutzern Zugriff auf den Webservice-Dienstordner gewährt wurde.

Fügen Sie den folgenden Code in die Datei web.config ein:

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

Ich bin auf diese Fragen und Antworten gestoßen, nachdem ich IE11beim Versuch, Dateien hochzuladen , den oben genannten Fehler erhalten habe 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);

Durch Entfernen der Leitung wurde reqObj.setRequestHeader("Content-Type", "multipart/form-data");das Problem behoben.

Hinweis: Dieser Fehler wird in anderen Browsern sehr unterschiedlich angezeigt. Dh Chrome zeigt etwas Ähnliches wie ein Verbindungs-Reset, das dem ähnelt, was Fiddler meldet (eine leere Antwort aufgrund eines plötzlichen Verbindungsabbruchs).

Außerdem trat dieser Fehler nur auf, wenn der Upload von einem anderen Computer als durchgeführt wurde WebServer(keine Probleme bei localhost).

Alexei
quelle
1

Ich möchte nur hinzufügen, was dieses Problem für mich gelöst hat, da es sich von allen oben genannten Antworten unterscheidet.

Die Ajax-Aufrufe, die das Problem verursachten, versuchten, ein leeres Datenobjekt zu übergeben. Es scheint, dass IE dies nicht mag, aber andere Browser haben nichts dagegen.

Um data: {},das Problem zu beheben, habe ich es einfach aus dem Ajax-Aufruf entfernt.

Tekiegirl
quelle
für mich hat das Entfernen body: {}das Problem behoben.
Schlumpf
1

Stellen Sie die Apache 2-Änderung KeepAliveTimeout auf 60 oder höher ein

Ankit Tomar
quelle
0

Das Erhöhen der Direktive im virtuellen Host für KeepAliveTimeout auf 60 hat dieses Problem für mich gelöst.

i.bajrai
quelle
0

Habe das gleiche Problem in meinem asp.net-Projekt festgestellt. Am Ende habe ich festgestellt, dass das Problem mit der Zielfunktion nicht statisch ist. Das Problem wurde behoben, nachdem ich das Schlüsselwort statisch eingegeben habe.

[WebMethod]
public static List<string> getRawData()
Derrick.X
quelle
2
Dies ist sehr spezifisch für die Anforderungen Ihrer Anwendung. Die Verwendung von "statisch" wird nicht speziell mit dieser Nachricht zusammenhängen. Versuchen Sie vielleicht, mehr über das eigentliche Problem zu erfahren. Das wäre fantastisch!
Jimmyt1988
0

Wenn keine dieser Lösungen "klar" genug war, kann IE / Edge Ihr Feld "Daten" Ihres AJAX-Aufrufs nicht ordnungsgemäß analysieren. Höchstwahrscheinlich senden Sie ein "codiertes" JSON-Objekt.

Was ist fehlgeschlagen : "data": "{\"Key\":\"Value\"}",

Was funktioniert: "data":'{"Key":"Value"}'

ROBERT DAWKINS
quelle
0

[Gelöst]

Ich habe diesen Fehler heute nur beobachtet, für mich war der Fehlercode jedoch anders.

SCRIPT7002: XMLHttpRequest: Netzwerkfehler 0x2efd, Vorgang konnte aufgrund des Fehlers 00002efd nicht abgeschlossen werden.

Es trat zufällig und nicht immer auf. aber was es bemerkt hat ist, wenn es für nachfolgende Ajax-Anrufe kommt. Also habe ich zwischen den Ajax-Aufrufen eine Verzögerung von 5 Sekunden gesetzt und es wurde behoben.

Amit Shah
quelle
2
Es ist schwer vorstellbar, dass eine Verzögerung von Ajax-Anrufen um " 5 Sekunden " eine vernünftige Lösung dafür wäre.
ChiefTwoPencils
@ChiefTwoPencils, genau das gleiche ist mein Stand ..! Aber das ist es, was mein Problem gelöst hat, nachdem ich so viel über die offiziellen Hilfeseiten des IE gebuddelt habe. Ich habe keinen hilfreichen Hinweis gefunden. Im Grunde ist es ein IE-Fehler, aber keine logische Lösung. Wenn Sie es finden, aktualisieren Sie mich bitte auch.
Amit Shah