Javascript 通过跳过受限元素,避免JSON.stringify()中的同源策略冲突

Javascript 通过跳过受限元素,避免JSON.stringify()中的同源策略冲突,javascript,json,error-handling,circular-dependency,stringify,Javascript,Json,Error Handling,Circular Dependency,Stringify,我使用JSON.stringify和一个自定义替换程序来stringify给定页面的窗口对象。在某些页面上,我可以理解得到中断执行的同源策略错误。我想做的是安全地处理导致错误的受限访问请求,跳过这些请求并继续执行其余部分。我可以在JSON.stringify之外捕获错误,但没有意义,因为执行已经停止 这可能吗?如果没有,那么在我使用JSON.stringify来消除循环引用时,有没有其他建议可以消除大型对象的循环引用,比如window,这可能会非常慢30秒以上,但它应该始终完成,并显示如何避免被

我使用JSON.stringify和一个自定义替换程序来stringify给定页面的窗口对象。在某些页面上,我可以理解得到中断执行的同源策略错误。我想做的是安全地处理导致错误的受限访问请求,跳过这些请求并继续执行其余部分。我可以在JSON.stringify之外捕获错误,但没有意义,因为执行已经停止


这可能吗?如果没有,那么在我使用JSON.stringify来消除循环引用时,有没有其他建议可以消除大型对象的循环引用,比如window,这可能会非常慢30秒以上,但它应该始终完成,并显示如何避免被循环引用抓住:花了这么多时间让stringify工作,我不想承认,但你的开箱即用的魔法功能似乎很有效!不过,如果我知道如何处理类似的异常处理问题,而我无法控制像JSON这样的函数,那就太好了。stringify@dandavis你能解释一下你的算法对循环引用的作用吗?我在窗口上有一个子对象,它在几个级别上有很多子对象,其中一些可能有循环引用,但整个对象在使用您的算法进行转换后就消失了,不仅是麻烦的子对象它实际工作和变慢的秘密是u=[]如果。。。u、 indexOfob[z]=-1{…u.pushob[z];,基本上是为找到的每个对象创建一个数组,并在继续跟踪任何对象属性之前查看数组内部。@dandavis根据我的经验,它跳过了一些对象,不明白为什么,但结果不包括我知道应该存在的子对象