相同的原始策略 - 子域和根域

时间:2013-04-18 19:08:40

标签: same-origin-policy allow-same-origin

我对same-origin政策有疑问。

我的公司有很多子域名,其中一个子域名想要一个iframe,其中包含另一个子域名,并填充iframe的格式。

我已经阅读了有关document.domain属性的内容,并且我需要在所有三个域中设置,但由于属于不同部门的每个子域,我无法轻松测试此属性。所以这是我的问题:

当子域既是https而根域不是时,这是否可行?我查看了维基百科上的示例,但这对我没有帮助。任何帮助将不胜感激。

示例:

https://x.company.org
https://y.company.org
http://company.org

x.company.org将有一个包含y.company.org iframe的页面,其中有一个我们想要自动填充的表单。

1 个答案:

答案 0 :(得分:16)

在此上下文中定义域的内容是协议,端口和域,因此浏览器将http://abc.comhttps://abc.com视为不同的域(http vs https)。

http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules

https://x.company.orghttps://y.company.org也被视为单独的域名,但他们可以放宽域名设置为https://company.org并进行交叉沟通。

http://en.wikipedia.org/wiki/Same_origin_policy#document.domain_property

现在还有另一种选择,因为HTML5适用于所有主流浏览器。使用HTML5 postMessage,您可以跨域进行通信,假设接收域想要接受消息并做出响应。

http://html5demos.com/postmessage2