javascript - 难以诊断循环 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;
}
解决方案
以防其他人遇到这种情况。事实证明,浏览器偶尔会发送一个ErrorEvent
对象作为window.onerror
. A 在我的错误处理程序中添加了一个检查来处理这种情况。
推荐阅读
- swift - Apple登录委托方法不调用?
- python - 多个堆叠的numpy数组的动画
- eslint - ESLint/Prettier 规则禁止没有占位符的模板文字
- .net-core - SOAP 服务器在从 .NET 框架更新到 .NET 核心后添加随机延迟
- asp.net-core - IIS 配置以在 ASP.NET 核心上获取 Windows 登录用户
- thunderbird - 是否可以通过自定义扩展更新 Thunderbird 中的过滤规则?
- xml - 如何让按钮的颜色改变?
- javascript - 如何根据div位置对对象数组进行排序
- python - 编写基于两个相关字典作为输入的函数
- cypress - 从元素中获取文本并将其用于下一步操作