Was würde dazu führen, dass eine Seite abgebrochen wird? Ich habe einen Screenshot der Chrome Developer Tools.
Dies passiert oft, aber nicht jedes Mal. Sobald einige andere Ressourcen zwischengespeichert sind, wird bei einer Seitenaktualisierung die Datei LeftPane.aspx geladen. Und was wirklich seltsam ist, ist, dass dies nur in Google Chrome und nicht in Internet Explorer 8 geschieht. Gibt es Ideen, warum Chrome eine Anfrage stornieren würde?
net::ERR_ABORTED
unter der Decke lag. In diesem Fall wird in diesem Beitrag erläutert, dass "net :: ERR_ABORTED nur generiert werden soll, wenn eine Benutzeraktion eine Unterbrechung des Ladevorgangs verursacht. Dies kann passieren, wenn eine neue Navigation eine vorhandene unterbricht oder wenn der Benutzer auf STOP klickt Taste."Antworten:
Wir hatten ein ähnliches Problem, bei dem Chrome Anfragen zum Laden von Objekten in Frames oder Iframes stornierte, jedoch nur zeitweise, und dies schien vom Computer und / oder der Geschwindigkeit der Internetverbindung abhängig zu sein.
Diese Informationen sind einige Monate veraltet, aber ich habe Chromium von Grund auf neu erstellt, die Quelle durchsucht, um alle Stellen zu finden, an denen Anforderungen storniert werden könnten, und auf alle Haltepunkte gesetzt, um sie zu debuggen. Aus dem Speicher die einzigen Stellen, an denen Chrome eine Anfrage storniert:
In unserem Fall haben wir es schließlich auf einen Frame zurückgeführt, der versucht, HTML an einen anderen Frame anzuhängen. Dies geschah manchmal, bevor der Zielframe überhaupt geladen wurde. Sobald Sie den Inhalt eines Iframes berühren, kann er die Ressource nicht mehr in ihn laden (woher weiß er, wo er abgelegt werden soll?), Sodass die Anforderung abgebrochen wird.
quelle
document.write
s zu diesem Frame finden und sicherstellen, dass sie nur schreiben, wenn der Frame geladen ist. Ich werde dies als die richtige Antwort markieren, da Sie die Bedeutung dieses Status beantwortet haben.true
in eine Variable schreibt . Dann suchen andere Frames zuerst danach, bevor Sie etwas berühren.status = cancel kann auch bei Ajax-Anfragen zu JavaScript-Ereignissen auftreten:
Das Ereignis sendet die Anforderung erfolgreich, wird dann jedoch abgebrochen (aber vom Server verarbeitet). Der Grund dafür ist, dass die Elemente Formulare für Klickereignisse senden, unabhängig davon, ob Sie Ajax-Anforderungen für dasselbe Klickereignis stellen.
Um zu verhindern, dass die Anforderung abgebrochen wird, verwenden Sie JavaScript event.preventDefault (). müssen genannt werden:
quelle
ng-click
auf einer Schaltfläche mit verwendettype="submit"
und dann einige Netzwerke in der aufgerufenen Funktion durchgeführt habe. Chrome stornierte diese Anfrage immer wieder ...NB: Stellen Sie sicher, dass Sie keine umschließenden Formularelemente haben .
Ich hatte ein ähnliches Problem, bei dem meine Schaltfläche mit onclick = {} in ein Formularelement eingeschlossen wurde. Wenn Sie auf die Schaltfläche klicken, wird auch das Formular gesendet, und das hat alles durcheinander gebracht ...
Diese Antwort wird wahrscheinlich nie von jemandem gelesen, aber ich dachte mir, warum ich sie nicht schreibe :)
quelle
@click
Ereignis an ein<button>
Element in einem Formularumbruch gebunden wurde . Vermeiden Sie dies, es sei denn, Sie verwenden den@submit.prevent
Ereignismodifikator von Vue .type="button"
zu meinem Schaltflächen-Tag wurde das Formular nicht gesendet und das abgebrochene Ereignis wurde vermieden.Eine andere Sache, auf die Sie achten sollten, könnte die AdBlock-Erweiterung oder Erweiterungen im Allgemeinen sein.
Aber "viele" Leute haben AdBlock ....
Um Erweiterungen auszuschließen, öffnen Sie eine neue Registerkarte in inkognito und stellen Sie sicher, dass "In inkognito zulassen" für die zu testenden Erweiterungen deaktiviert ist.
quelle
Möglicherweise möchten Sie das Header-Tag "X-Frame-Options" überprüfen. Wenn SAMEORIGIN oder DENY festgelegt ist, wird das Einfügen von iFrame von Chrome (und anderen Browsern) gemäß der Spezifikation abgebrochen .
Beachten Sie außerdem, dass einige Browser die Einstellung ALLOW-FROM unterstützen, Chrome jedoch nicht.
Um dies zu beheben, müssen Sie das Header-Tag "X-Frame-Options" entfernen. Dies könnte Sie für Clickjacking-Angriffe offen lassen, sodass Sie entscheiden müssen, welche Risiken bestehen und wie Sie diese mindern können.
quelle
In meinem Fall stellte ich fest, dass es sich um Einstellungen für das globale Zeitlimit für die Abfrage handelt, ein globales Zeitlimit für die Einrichtung des Abfrage-Plugins auf 500 ms, sodass Chrome die Anforderung abbricht, wenn die Anforderung 500 ms überschreitet.
quelle
includes/class-wc-frontend-scripts.php
Datei definiert .Folgendes ist mir passiert: Der Server hat einen fehlerhaften "Standort" -Header für eine 302-Umleitung zurückgegeben. Chrome hat mir das natürlich nicht gesagt. Ich habe die Seite in Firefox geöffnet und das Problem sofort entdeckt. Schön, mehrere Werkzeuge zu haben :)
quelle
#{}
Interpolation nicht durchführten, sodass die resultierende URL fehlerhaft war. Aber Chrome hat mir nichts darüber erzählt.Ein weiterer Ort, an dem wir auf den
(canceled)
Status gestoßen sind, ist eine bestimmte Fehlkonfiguration des TLS-Zertifikats. Wenn eine Site wie die sohttps://www.example.com
falsch konfiguriert ist, dass das Zertifikat das nicht enthält,www.
aber gültig isthttps://example.com
, bricht Chrome diese Anforderung ab und leitet sie automatisch zur letzteren Site weiter. Dies ist bei Firefox nicht der Fall.Derzeit gültiges Beispiel: https://www.pthree.org/
quelle
Bei der Umleitung zwischen sicheren und nicht sicheren Seiten in separaten Domänen innerhalb eines Iframes ist mir eine stornierte Anfrage passiert. Die umgeleitete Anfrage wurde in den Entwicklungstools als "abgebrochene" Anfrage angezeigt.
Ich habe eine Seite mit einem Iframe, der ein Formular enthält, das von meinem Zahlungsgateway gehostet wird. Wenn das Formular im Iframe gesendet wurde, leitete das Zahlungsgateway zurück zu einer URL auf meinem Server. Die Umleitung hat kürzlich aufgehört zu funktionieren und wurde stattdessen als "abgebrochene" Anforderung ausgeführt.
Es scheint, dass Chrome (ich habe Windows 7 Chrome 30.0.1599.101 verwendet) einer Umleitung innerhalb des Iframes nicht mehr erlaubt hat, zu einer nicht sicheren Seite in einer separaten Domain zu wechseln. Um dies zu beheben, habe ich nur sichergestellt, dass umgeleitete Anforderungen im Iframe immer an sichere URLs gesendet wurden.
Als ich eine einfachere Testseite mit nur einem Iframe erstellt habe, gab es eine Warnung in der Konsole (die ich zuvor verpasst hatte oder vielleicht nicht angezeigt wurde):
Die Weiterleitung wurde in Chrome auf PC, Mac und Android zu einer abgebrochenen Anfrage. Ich weiß nicht, ob es spezifisch für mein Website-Setup ist (SagePay Low Profile) oder ob sich in Chrome etwas geändert hat.
quelle
Chrome Version 33.0.1750.154 m bricht das Laden von Bildern durchgehend ab, wenn ich die mobile Emulation verwende, die auf meinen lokalen Host zeigt. speziell mit User - Agent - Spoofing auf (gegenüber nur Bildschirmeinstellungen).
Wenn ich das Spoofing von User Agent ausschalte; Bildanfragen werden nicht storniert, ich sehe die Bilder.
Ich verstehe immer noch nicht warum; Im ersteren Fall, in dem die Anforderung abgebrochen wird, haben nur die Anforderungsheader (VORSICHT: Vorläufige Header werden angezeigt)
Im letzteren Fall mögen alle diese und andere:
Zucken
quelle
Ich habe diesen Fehler in Chrome erhalten, als ich über JavaScript umgeleitet habe:
Wie Sie sehen, habe ich das 'http: //' vergessen . Nachdem ich es hinzugefügt hatte, funktionierte es.
quelle
Für meinen Fall hatte ich einen Anker mit Klickereignis wie
Innerhalb des Klickereignisses hatte ich einen Netzwerkanruf, bei dem Chrome die Anfrage abbrach. Der Anker hat
href
mit""
Mitteln, es die Seite neu geladen und gleichzeitig hat es Ereignis mit Netzanruf klicken , die gelöscht wird. Wann immer ich dashref
durch void wie ersetzeDas Problem ging weg!
quelle
Hier ist ein weiterer Fall, in dem eine Anfrage von Chrome storniert wurde, auf den ich gerade gestoßen bin und der von keiner der Antworten dort oben abgedeckt wird.
Kurz gesagt,
selbstsigniertes Zertifikat, das auf meinem Android-Handy nicht vertrauenswürdig ist.
Details
Wir befinden uns in der Entwicklungs- / Debug-Phase. Die URL zeigt auf einen selbstsignierten Host. Der Code lautet wie folgt:
Chrome hat die Anfrage nur stillschweigend abgebrochen und für Neulinge wie mich keine Ahnung von der Webentwicklung gelassen, um das Problem zu beheben. Sobald ich das Zertifikat über das Android-Handy heruntergeladen und installiert habe, ist das Problem behoben.
quelle
Wenn Sie einige auf Observable basierende HTTP-Anforderungen wie die in Angular (2+) integrierten verwenden, kann die HTTP-Anforderung abgebrochen werden, wenn Observable abgebrochen wird (häufig, wenn Sie den RxJS 6-
switchMap
Operator zum Kombinieren der Streams verwenden). . In den meisten Fällen reicht es aus,mergeMap
stattdessen den Operator zu verwenden, wenn die Anforderung abgeschlossen werden soll.quelle
Ich hatte genau das gleiche mit zwei CSS-Dateien, die in einem anderen Ordner außerhalb meines Haupt-CSS-Ordners gespeichert waren. Ich verwende Expression Engine und habe festgestellt, dass das Problem in den Regeln in meiner htaccess-Datei enthalten ist. Ich habe den Ordner gerade zu einer meiner Bedingungen hinzugefügt und er hat ihn behoben. Hier ist ein Beispiel:
Es könnte sich also lohnen, Ihre htaccess-Datei auf mögliche Konflikte zu überprüfen
quelle
Ich habe alle Arten von Schriftarten sowie woff , woff2 , ttf eingebettet , wenn ich eine Webschriftart in ein Stylesheet einbette. Kürzlich habe ich festgestellt, dass Chrome die Anforderung von ttf und woff abbricht, wenn woff2 vorhanden ist. Ich verwende derzeit die Chrome-Version 66.0.3359.181, bin mir jedoch nicht sicher, wann Chrome mit dem Abbrechen zusätzlicher Schriftarten begonnen hat.
quelle
Wir hatten dieses Problem mit einem Tag
<button>
im Formular, das eine Ajax-Anfrage von js senden sollte. Diese Anfrage wurde jedoch aufgrund eines Browsers abgebrochen, der das Formular bei jedem Klick im Formular automatisch sendetbutton
.Wenn Sie also wirklich
button
anstelle von normaldiv
oderspan
auf der Seite verwenden möchten und Formular-Wurf-Js senden möchten, sollten Sie einen Listener mitpreventDefault
Funktion einrichten .z.B
quelle
ist mir genauso passiert, als ich a angerufen habe. js Datei mit $. Ajax, und machen Sie eine Ajax-Anfrage, was ich getan habe, war normal anzurufen.
quelle
In meinem Fall hat der Code zum Anzeigen des E-Mail-Client-Fensters dazu geführt, dass Chrome das Laden von Bildern beendet hat:
Das Verschieben nach $ (Fenster) .load (Funktion () {...}) anstelle von $ (Funktion () {...}) hat geholfen.
quelle
In can hilft dies jedem, dem ich den stornierten Status begegnet bin, als ich die Rückgabe false weggelassen habe; im Formular einreichen. Dies führte dazu, dass auf den Ajax-Send sofort die Submit-Aktion folgte, die die aktuelle Seite überschrieb. Der Code wird unten angezeigt, wobei die wichtige Rückgabe am Ende false ist.
Hoffe das hilft jemandem.
quelle
Für alle, die von LoopbackJS kommen und versuchen, die benutzerdefinierte Stream-Methode zu verwenden, wie in ihrem Diagrammbeispiel angegeben. Ich habe diesen Fehler mit a erhalten
PersistedModel
und durch Umschalten auf ein Basisproblem wurdeModel
mein Problem mit demeventsource
Aufheben des Status behoben .Auch dies ist speziell für die Loopback-API. Und da dies eine Top-Antwort und Top-Antwort auf Google ist, dachte ich mir, ich würde dies in die Mischung der Antworten werfen.
quelle
Ich hatte das gleiche Problem, irgendwo tief in unserem Code hatten wir diesen Pseudocode:
Onload von Iframe senden Sie ein Formular
Entfernen Sie nach 2 Sekunden den Iframe
Wenn der Server mehr als 2 Sekunden benötigt, um zu antworten, wurde der Iframe, auf den der Server die Antwort schrieb, entfernt, aber die Antwort musste noch geschrieben werden, aber es gab keinen Iframe zum Schreiben. Daher stornierte Chrome die Anforderung. Um dies zu vermeiden, habe ich sichergestellt, dass der Iframe erst entfernt wird, nachdem die Antwort beendet ist, oder Sie können das Ziel in "_blank" ändern. Einer der Gründe ist daher: Wenn die Ressource (in meinem Fall Iframe), in die Sie etwas schreiben, entfernt oder gelöscht wird, bevor Sie aufhören, darauf zu schreiben, wird die Anforderung abgebrochen
quelle
Für mich war der Status "Abgebrochen", weil die Datei nicht existierte. Seltsam, warum Chrom nicht angezeigt wird
404
.quelle
Es war so einfach wie ein falscher Weg für mich. Ich würde vorschlagen, dass der erste Schritt beim Debuggen darin besteht, zu prüfen, ob Sie die Datei unabhängig von Ajax usw. laden können.
quelle
Die Anforderungen wurden möglicherweise durch ein Tracking-Schutz-Plugin blockiert.
quelle
Es ist mir passiert, als ich 300 Bilder als Hintergrundbilder geladen habe. Ich vermute, sobald das erste Mal eine Zeitüberschreitung aufgetreten ist, hat es den Rest abgebrochen oder die maximale gleichzeitige Anforderung erreicht. müssen jeweils 5 implementieren
quelle
Einer der Gründe könnte sein, dass XMLHttpRequest.abort () irgendwo im Code aufgerufen wurde. In diesem Fall hat die Anforderung den
cancelled
Status auf der Registerkarte Netzwerk der Chrome Developer Tools.quelle
In meinem Fall kam es nach dem Chrome 76-Update.
Aufgrund eines Problems in meinem JS-Code wurde window.location mehrmals aktualisiert, was dazu führte, dass die vorherige Anforderung abgebrochen wurde. Obwohl das Problem bereits früher aufgetreten war, hat Chrome nach dem Update auf Version 76 begonnen, die Anforderung abzubrechen.
quelle
Ich hatte das gleiche Problem beim Aktualisieren eines Datensatzes. Innerhalb von save () bereitete ich die aus dem Formular entnommenen Rohdaten so vor, dass sie mit dem Datenbankformat übereinstimmen (wobei viele Aufzählungswerte usw. zugeordnet werden), wodurch die Put-Anforderung zeitweise abgebrochen wird. Ich habe es gelöst, indem ich die Datenvorbereitung aus save () herausgenommen und daraus eine dedizierte dataPrep () -Methode erstellt habe. Ich habe diesen dataPrep in asynchron umgewandelt und warte auf die gesamte speicherintensive Datenkonvertierung. Ich gebe dann die vorbereiteten Daten an die save () -Methode zurück, die ich im http put-Client verwenden könnte. Ich habe sichergestellt, dass ich auf dataPrep () warte, bevor ich die put-Methode aufrufe:
warte auf dataToUpdate = warte auf dataPrep (); http.put (apiUrl, dataToUpdate);
Dies löste das zeitweise Abbrechen der Anfrage.
quelle
Wenn Sie Axios verwenden, kann es Ihnen helfen
// change timeout delay: instance.defaults.timeout = 2500;
https://github.com/axios/axios#config-order-of-precedence
quelle