Chrome sendrequest error: TypeError: Converting circular structure to JSON

google-chrome, google-chrome-extension, javascript, json

Solution

It means that the object you pass in the request (I guess it is `pagedoc`) has a circular reference, something like:

var a = {};
a.b = a;

`JSON.stringify` cannot convert structures like this.

N.B.: This would be the case with DOM nodes, which have circular references, even if they are not attached to the DOM tree. Each node has an `ownerDocument` which refers to `document` in most cases. `document` has a reference to the DOM tree at least through `document.body` and `document.body.ownerDocument` refers back to `document` again, which is only one of multiple circular references in the DOM tree.

Problem

I've got the following... ``` chrome.extension.sendRequest({ req: "getDocument", docu: pagedoc, name: 'name' }, function(response){ var efjs = response.reply; }); ``` which calls the following.. ``` case "getBrowserForDocumentAttribute": alert("ZOMG HERE"); sendResponse({ reply: getBrowserForDocumentAttribute(request.docu,request.name) }); break; ``` However, my code never reaches "ZOMG HERE" but rather throws the following error while running `chrome.extension.sendRequest` ``` Uncaught TypeError: Converting circular structure to JSON chromeHidden.JSON.stringify chrome.Port.postMessage chrome.initExtension.chrome.extension.sendRequest suggestQuery ``` Does anyone have any idea what is causing this?

Original source

Related problems