首页 > 解决方案 > 难以诊断循环 JSON

问题描述

我的错误处理程序中有一个错误:) Uncaught TypeError: Converting circular structure to JSON

我怀疑在JSON.stringify调用中引发了另一个异常,这就是导致它的原因?我当然看不出err_msg, err_url, 或err_line可以以某种方式引用自己。

有没有办法可以保护这段代码不被循环?有没有人知道为什么会出现这个错误?

window.onerror = function myErrorHandler(err_msg, err_url, err_line) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/log-receiver", true);
    xhr.setRequestHeader('X-Csrftoken', document.getElementsByName("csrfmiddlewaretoken")[0].value);
    xhr.setRequestHeader('Content-Type', "application/json;charset=UTF-8");
    xhr.send(JSON.stringify({
        message: err_msg,
        url: err_url,
        line: err_line,
        level: 'ERROR'
    }));

    return false;
}

标签: javascriptjson

解决方案


以防其他人遇到这种情况。事实证明,浏览器偶尔会发送一个ErrorEvent对象作为window.onerror. A 在我的错误处理程序中添加了一个检查来处理这种情况。


推荐阅读