Chrome-Entwicklungstools zeigen keine Antwort an, selbst wenn der zurückgegebene Inhalt den Header Content-Type hat: text / html; Zeichensatz = UTF-8

141

Warum wird in meinen Chrome-Entwicklertools als Antwort "Antwortdaten konnten nicht angezeigt werden" angezeigt, wenn der zurückgegebene Inhalt vom Typ "text / html" ist?

Was ist die Alternative, um die zurückgegebene Antwort in Entwicklertools anzuzeigen?

RandominstanceOfLivingThing
quelle
Ich habe festgestellt, dass Microsoft Edge Dev (basierend auf Chromium) mir diesen Fehler nicht gibt.
Für den Namen

Antworten:

198

Ich denke, dies passiert nur, wenn Sie "Protokoll beibehalten" aktiviert haben und versuchen, die Antwortdaten einer vorherigen Anforderung anzuzeigen, nachdem Sie weg navigiert sind.

Ich habe beispielsweise die Antwort zum Laden dieser Stapelüberlauffrage angezeigt. Du kannst es sehen.

Antwortdaten

Beim zweiten Mal habe ich diese Seite neu geladen, mir aber die Header oder die Antwort nicht angesehen. Ich habe zu einer anderen Website navigiert. Wenn ich mir jetzt die Antwort ansehe, wird "Antwortdaten konnten nicht geladen werden" angezeigt.

Keine Antwortdaten

Dies ist ein bekanntes Problem , das es schon eine Weile gibt und über das viel diskutiert wird. Es gibt jedoch eine Problemumgehung, bei der Sie eine Pause einlegen onunload, damit Sie die Antwort anzeigen können, bevor sie weg navigiert, und dadurch die Daten beim Wegnavigieren nicht verloren gehen.

window.onunload = function() { debugger; }
Gideon Pyzer
quelle
184
Wenn Sie keine Antwortdaten sehen können, wird der Punkt "Protokoll beibehalten" fast vollständig beendet!
Amalgovinus
1
Die Problemumgehung für window.onunload hat hervorragend funktioniert, danke!
Shane N
25
Nein, in Chrome 61 kann dies definitiv auch passieren, wenn "Protokoll beibehalten" nicht aktiviert ist und die Seite nicht verlassen wird.
ODER Mapper
Die Antwortdaten können groß sein, und wenn das Protokoll auf unbestimmte Zeit beibehalten wird, würde dies die DevTool-Leistung erheblich beeinträchtigen. Das Verwerfen der Antwortdaten bei der Navigation wurde wahrscheinlich beabsichtigt. Wenn Sie Vorschläge haben, kommentieren Sie den oben verlinkten Thread.
Gideon Pyzer
2
Bei diesem Problem mit Chrome 73.0 tritt das onunloadUpdate aus irgendeinem Grund immer noch nicht auf.
Onza
46

Für diejenigen, die beim Anfordern von JSON-Daten den Fehler erhalten:

Wenn Sie JSON-Daten anfordern, ist der JSON möglicherweise zu groß und verursacht den Fehler.

Meine Lösung besteht darin, den Anforderungslink auf eine neue Registerkarte zu kopieren ( getAnforderung vom Browser). Kopieren Sie die Daten online in den JSON-Viewer, wo Sie die automatische Analyse durchführen und dort daran arbeiten.

Tomz
quelle
14
aber nicht wirklich eine Lösung. Ich arbeite mit Authentifizierung und so. Widerspricht dem Zweck der Entwicklungswerkzeuge. Jemand sollte wahrscheinlich irgendwo einen Fehlerbericht erstellen. Richtige Antwort hier allerdings
phil294
1
Ist diese Grenze in irgendeiner Weise konfigurierbar?
Willem Hengeveld
In meinem Fall passierte es bei 23 MB, was eine blöde große JSON-Antwort ist. Ich habe ein Problem geöffnet, um die Fehlermeldung aussagekräftiger zu gestalten.
Bootscodierer
Ich sehe das Problem für 6 MB JSON :(
Lee Gunn
Auch dies bei JSON-Antwort über 6 MB unkomprimiert zu treffen.
miki noidea
39

Wie von Gideon beschrieben, ist dies ein bekanntes Problem mit Chrome, das seit mehr als 5 Jahren offen ist und kein offensichtliches Interesse daran hat, es zu beheben.

Leider hat in meinem Fall die window.onunload = function() { debugger; }Problemumgehung auch nicht funktioniert. Bisher ist die beste Problemumgehung, die ich gefunden habe, die Verwendung von Firefox, das Antwortdaten auch nach einer Navigation anzeigt. Die Firefox-Devtools haben auch viele nette Funktionen, die in Chrome fehlen, wie die Syntax, die die Antwortdaten hervorhebt, wenn es sich um HTML handelt, und das automatische Parsen, wenn es sich um JSON handelt.

Antimon
quelle
4
Wow, tolle Sache. Sie müssen einen Fehler debuggen, der nur bei Chrome und nicht bei Firefox auftritt. Also auch keine Option für mich. Im Ernst, warum sagen alle, dass die Chrome-Web-Tools so viel besser sind als die von Firefox? Scheint, als hätten sie Firefox jahrelang nicht ausprobiert.
Mozzbozz
11
Chrome verfügt auch nicht über die praktische Anforderungsoption "Bearbeiten und erneut senden" von Firefox.
Antimon
1
Ja ... Ich habe auch FF verwendet, um die Sache zu erledigen ... Hat wie erwartet funktioniert. Wir leben tückische Zeiten!
nmirceac
@Antimony Chrome hatte schon eine ganze Weile die Option "Erneut senden", aber in einer der letzten Versionen haben sie sogar das entfernt ... Zum Glück kann man schnell fetch(...copied link...)in der Konsole arbeiten und die Reaktion auf der Registerkarte "Netzwerk" beobachten
Ivan Hušnjak
Ich bekomme das auch jetzt noch. Um laut zu schreien, möchte ich lieber, dass sie das reparieren, was sie bereits haben, als sinnlose Funktionen wie eifrige Evaluierung in die Konsole einzuführen und die Qualität ihrer grundlegenden Entwicklertools zu vernachlässigen.
thephpdev
20

Wie von Gideon beschrieben, ist dies ein bekanntes Problem.
Zur Verwendung window.onunload = function() { debugger; }stattdessen.
Sie können jedoch auf der Registerkarte Quelle einen Haltepunkt hinzufügen und dann Ihr Problem lösen. so was: Geben Sie hier die Bildbeschreibung ein

Fitz
quelle
Was ist der Vorteil der Registerkarte Quelle gegenüber window.onunload = function() { debugger; }?
Mihail Malostanidis
1
Sie müssen den Code für den Debugger nicht schreiben, und Sie können in höheren Umgebungen debuggen, in denen Sie möglicherweise zwischen den Seiten springen und nicht dasselbe Fenster
beibehalten
window.onunload = function() { debugger; }hat bei mir nicht funktioniert, das hat funktioniert. Vielen Dank!
Aexl
11

"Antwortdaten konnten nicht angezeigt werden" kann auch auftreten, wenn Sie domänenübergreifende Anforderungen ausführen und der Remote-Host die CORS-Header nicht ordnungsgemäß verarbeitet. Überprüfen Sie Ihre js-Konsole auf Fehler.

Deweydb
quelle
2
Chrom ist immer noch kaputt, weil es die Antwort nicht zeigt (in welcher Form auch immer) - FF hat für mich
funktioniert
Sie haben Recht! Aber genau deshalb brauche ich die Antwort, um zu verstehen, warum meine Anfrage fehlschlägt. Mit Curl funktioniert alles einwandfrei, aber Chrome schlägt immer noch fehl mit "Antwort auf Preflight-Anforderung besteht die Zugriffskontrollprüfung nicht: Für die angeforderte Ressource ist kein Header" Zugriffskontrolle-Zulassen-Ursprung "vorhanden"
AHA
4

Wenn Sie einen AJAX - Request mit machen fetch, wird die Antwort nicht gezeigt , wenn es mit gelesen hat .text(), .json()usw.

Wenn Sie nur tun:

 r = fetch("/some-path");

Die Antwort wird in den Entwicklungstools nicht angezeigt.
Es wird angezeigt, nachdem Sie ausgeführt haben:

r.then(r => r.text())
gre_gor
quelle
1

Für diejenigen, die diesen Fehler beim Anfordern großer JSON-Daten erhalten, ist es, wie von Blauhirn erwähnt, keine Lösung, die Anforderung nur in einem neuen Tab zu öffnen, wenn Sie Authentifizierungsheader und dergleichen verwenden.

Forturnatly Chrome hat andere Optionen wie Kopieren -> Als Locke kopieren. Das Ausführen dieses Aufrufs von der Kommandozentrale über cURL ist eine exakte Kopie des ursprünglichen Aufrufs.

Ich > ~/result.jsonhabe den letzten Teil des Kommandos hinzugefügt , um das Ergebnis in einer Datei zu speichern. Andernfalls wird es an die Konsole ausgegeben.

thephper
quelle
1
Ein genaues Replikat nützt nichts, wenn sich der Serverstatus, der die Antwort liefert, geändert hat. Für mich, die ungefähr 40 Minuten warten müssen, bis ein Ereignis eintritt, und dieses Ereignis eine neue Seite auslöst, bricht dies die gesamte Nutzung vollständig ab. Es sollte eine Option sein, die umgeschaltet werden kann. Leider gibt es keine Abstimmungs- oder Kommentaroption für allgemeine Besucher des in einem vorherigen Kommentar aufgeführten Problems, es sei denn, Sie sind Teil ihres Teams: /
David Mårtensson