解決Chrome sendRequest 中的「TypeError: Converting Circular Structure to JSON」
在Chrome 擴充功能中,利用程式碼Re.後台腳本可能會導致“TypeError:將循環結構轉換為JSON”錯誤。當請求物件包含循環參考時會出現此錯誤,導致其無法轉換為 JSON 格式進行傳輸。
考慮以下程式碼片段:
chrome.extension.sendRequest({ req: "getDocument", docu: pagedoc, name: 'name' }, function(response) { var efjs = response.reply; });
如果 pagedoc 物件包含循環引用,如下所述,程式碼將失敗並出現上述錯誤。
var a = {}; a.b = a;
在 JSON 資料中,不允許循環引用。 DOM 節點也表現出循環引用,即使它們沒有附加到文件樹。例如,每個節點都有一個引用文件的ownerDocument屬性,而document.body.ownerDocument再次引用文件;這只是 DOM 樹中的眾多循環引用之一。
解決方案
要解決此問題,請從請求物件中識別並刪除循環引用。例如,如果 pagedoc 是 DOM 節點,您可以將其從請求物件中刪除,而只包含其相關屬性。或者,您可以使用處理循環參考的程式庫。
執行下列步驟,您可以有效解決 Chrome 擴充功能 sendRequest 呼叫中的「TypeError: Converting Circular Structure to JSON」錯誤。
以上是如何修復 Chrome 擴充功能 `sendRequest` 中的「TypeError: Converting Circular Structure to JSON」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!