Heim > Web-Frontend > js-Tutorial > Wie behebt man „TypeError: Converting Circular Structure to JSON' in der Chrome-Erweiterung „sendRequest'?

Wie behebt man „TypeError: Converting Circular Structure to JSON' in der Chrome-Erweiterung „sendRequest'?

Linda Hamilton
Freigeben: 2024-12-23 13:47:16
Original
556 Leute haben es durchsucht

How to Fix

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;
});
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage