Chrome sendrequest错误:TypeError:将循环结构转换为JSON我有以下......chrome.extension.sendRequest({
req: "getDocument",
docu: pagedoc,
name: 'name'}, function(response){
var efjs = response.reply;});它调用以下..case "getBrowserForDocumentAttribute":
alert("ZOMG HERE");
sendResponse({
reply: getBrowserForDocumentAttribute(request.docu,request.name)
});
break;但是,我的代码永远不会到达“ZOMG HERE”,而是在运行时抛出以下错误 chrome.extension.sendRequest Uncaught TypeError: Converting circular structure to JSON
chromeHidden.JSON.stringify
chrome.Port.postMessage
chrome.initExtension.chrome.extension.sendRequest
suggestQuery有谁知道是什么原因引起的?
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
这意味着你在请求中传递的对象(我猜它是pagedoc
)有一个循环引用,如:
var a = {};a.b = a;
JSON.stringify
不能转换像这样的结构。
注意:DOM节点就是这种情况,它们具有循环引用,即使它们没有附加到DOM树。每个节点都有一个在大多数情况下ownerDocument
引用的节点document
。document
具有至少一个通过参考DOM树document.body
和document.body.ownerDocument
指回document
再次,这是唯一一个在DOM树中的多个循环引用。
侃侃无极
TA贡献2051条经验 获得超10个赞
一种方法是从主对象中剥离对象和函数。并将更简单的形式字符串化
function simpleStringify (object){ var simpleObject = {}; for (var prop in object ){ if (!object.hasOwnProperty(prop)){ continue; } if (typeof(object[prop]) == 'object'){ continue; } if (typeof(object[prop]) == 'function'){ continue; } simpleObject[prop] = object[prop]; } return JSON.stringify(simpleObject); // returns cleaned up JSON};
添加回答
举报
0/150
提交
取消