16

我有一个关于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 的页面,其中有一个我们希望自动填充的表单。

4

1 回答 1

22

在此上下文中定义域的事物是协议、端口和域,因此http://abc.comhttps://abc.com被您的浏览器视为不同的域(http 与 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

于 2013-07-17T16:02:23.937 回答