繁体   English   中英

如何克服iframe的同源策略?

[英]How to overcome same-origin-policy from iframe?

我基本上是想在iframe中显示另一个网站,该网站属于同一组织,但托管在另一个域名上。 我正在尝试将一些数据从iframe传递到父框架。

父框架= foo.com,

iframe = bar.com

如果我尝试通过parent.setData( data )从iframe传递parent.setData( data ) ,则会给我一个同源策略错误。

因此,我对此代码进行了包装,托管在foo.com/js/wrapper.js ,其中包含以下功能:

var Foo = {};
Foo.setData = function(data)
{
    parent.setData(data);
}

因此,现在我在bar.com上的bar.com正在执行:

<script src="http://foo.com/js/wrapper.js"></script>
<script>
   Foo.setData( someData );
</script>

但是,即使这样,即使通过wrapper.js托管在父域中,也使我在parent.setData行上出现了安全错误。

还有其他方法可以克服吗?

您正在寻找postMessage ,请在此处继续阅读: https : //developer.mozilla.org/zh-CN/docs/Web/API/Window.postMessage

编辑:对不起,没有看到所有评论都说同一件事

解决该策略的另一种有趣方式是劫持子window.location.hash,因为这两个脚本引擎也可以看到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM