Behebung von „TypeError: Converting Circular Structure to JSON“ in Chrome sendRequest
In Chrome-Erweiterungen wird chrome.extension.sendRequest zur Kommunikation verwendet Hintergrundskripte können zum Fehler „TypeError: Converting Circular Structure to JSON“ führen. Dieser Fehler tritt auf, wenn das Anforderungsobjekt einen Zirkelverweis enthält, der verhindert, dass es zur Übertragung in das JSON-Format konvertiert wird.
Beachten Sie den folgenden Codeausschnitt:
chrome.extension.sendRequest({ req: "getDocument", docu: pagedoc, name: 'name' }, function(response) { var efjs = response.reply; });
Wenn das Pagedoc-Objekt ein enthält Zirkelverweise, wie unten erläutert, schlägt der Code mit dem oben genannten Fehler fehl.
var a = {}; a.b = a;
In JSON-Daten sind Zirkelverweise nicht zulässig. Auch DOM-Knoten weisen Zirkelverweise auf, selbst wenn sie nicht mit dem Dokumentbaum verbunden sind. Beispielsweise verfügt jeder Knoten über eine Eigenschaft „ownerDocument“, die auf das Dokument verweist, und „document.body.ownerDocument“ verweist erneut auf das Dokument. Dies ist nur einer von vielen Zirkelverweisen im DOM-Baum.
Lösung
Um dieses Problem zu beheben, identifizieren und entfernen Sie die Zirkelverweise aus dem Anforderungsobjekt. Wenn pagedoc beispielsweise ein DOM-Knoten ist, können Sie ihn aus dem Anforderungsobjekt entfernen und stattdessen nur seine relevanten Eigenschaften einbeziehen. Alternativ können Sie eine Bibliothek verwenden, die Zirkelverweise verarbeitet.
Durch Befolgen dieser Schritte können Sie den Fehler „TypeError: Converting Circular Structure to JSON“ in sendRequest-Aufrufen der Chrome-Erweiterung effektiv beheben.
Das obige ist der detaillierte Inhalt vonWie behebt man „TypeError: Converting Circular Structure to JSON' in der Chrome-Erweiterung „sendRequest'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!