【问题标题】:Same origin policy - Subdomains and Root Domain同源策略 - 子域和根域
【发布时间】:2013-04-12 01:18:12
【问题描述】:

我对@9​​87654321@ 政策有疑问。

我的公司有许多子域,他们希望在其中一个子域中包含一个 iframe,其中包含另一个子域并填充 iframe 的形式。

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

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

示例:

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

x.company.org 将有一个 iframe 为 y.company.org 的页面,其中有一个我们希望自动填充的表单。

【问题讨论】:

    标签: same-origin-policy


    【解决方案1】:

    在此上下文中定义域的内容是协议、端口和域,因此 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

    【讨论】:

    • 感谢您的回复。只是为了澄清您的答案,当您说他们可以将域设置放宽到根域时。根域是否也必须使用相同的协议?另外,很遗憾,我们无法使用 post 消息,因为我们的大多数用户仍在使用 IE7 和 IE8。
    • 我理解你的例子是说 x.company.org 将在 iframe 中托管 y.company.org。在这种情况下,两个页面都应该执行 docoument.domain="company.org" 才能正常工作:javascript.info/tutorial/…
    • 子域不需要 CORS。 en.m.wikipedia.org/wiki/…
    猜你喜欢
    • 2014-06-05
    • 2017-01-05
    • 2014-03-05
    • 2014-02-01
    • 2011-12-26
    • 2013-01-18
    • 2023-03-22
    • 2011-02-02
    • 2013-01-06
    相关资源
    最近更新 更多