作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对具有我不知道的深层层次结构的大对象进行字符串化,以摆脱它的循环引用。它在大多数情况下都有效,除了我经常遇到同源策略异常。我对引用其他域或其他受限元素的任何子对象不感兴趣。
JSON.parse(stringify(window));
Uncaught DOMException: Blocked a frame with origin "http://www.xxxxxx.com" from accessing a cross-origin frame.
JSON.stringify()
,如何优雅地跳过导致异常的原因并完成我的代码的执行来避免异常代码?
JSON.stringify()
在这里只是一个例子,我想更一般地说我要问的是
如果您不想违反同源政策异常(exception)但必须像在这种情况下那样处理它,如何规避同源政策异常(exception)?
最佳答案
尝试这个!首先,您需要删除页面上的所有 iframe 以防止出现跨源错误。然后你可以运行替换函数作为 JSON.stringify()
的第二个参数。检查并丢弃循环引用。
document.querySelectorAll('iframe').forEach(iframe => iframe.remove());
let cache = [];
const globals = JSON.stringify(window, (key, value) => {
if (typeof value === 'object' && value !== null) {
// Circular reference found, discard key
if (cache.indexOf(value) !== -1) return;
// Store value in our collection
cache.push(value);
}
return value;
});
cache = null; // Enable garbage collection
console.log(globals);
关于javascript - 当您无法控制时如何规避同源策略错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33201681/
我的 coinbase 支付按钮不会显示。我从 coinbase 收到此错误消息: 拒绝显示' https://coinbase.com/transactions ' 在框架中,因为它将 'X-Fra
我有一个 Web 应用程序,它作为托管在单个父窗口中的多个 iframe 运行(基本上是修改后的 GWT)http://en.wikipedia.org/wiki/Google_Web_Toolkit
CORS 表示: A web application executes a cross-origin HTTP request when it requests a resource that has
假设我有一个 CPU 密集型 iframe。 它与父页面在同一个域中,因此不适用跨域,因此它共享父页面的事件循环。 是否可以为 iframe 提供一个单独的 JS 上下文(包括一个单独的事件循环),这
我是一名优秀的程序员,十分优秀!