2013-04-18 61 views
10

我有一個關於同源策略的問題。我的公司有許多子域名,其中一個子域名會包含一個iframe,並在其中包含另一個子域名,並填充iframe的形式。我已經閱讀了關於document.domain屬性的內容,並且我需要在所有三個域中設置,但不能輕易測試,因爲每個子域都屬於不同的部門。所以這是我的問題。相同來源策略 - 子域名和根域名稱

這是可能的,當子域都是https,並且根域不是?我查看了維基百科上的例子,但這並沒有幫助我。任何幫助將不勝感激。

實施例:

https://x.company.org

https://y.company.org

HTTP://company.org

x.company.org將有一個網頁的一個iframe y.company.org其有一個我們想要自動填充的表單。

(我知道的聯繫被破壞,但那是因爲我不能發佈超過2個鏈接)

回答

13

,在此背景下定義域是協議,端口和域,以便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

+0

感謝您的回覆。只是爲了澄清你的答案,當你說他們可以放鬆域名設置到根域。根域是否也必須使用相同的協議? 此外,很遺憾,我們無法使用發佈消息,因爲我們大多數用戶仍在使用IE7和IE8。 –

+2

我瞭解你的例子,說x.company.org將在iframe中託管y.company.org。在這種情況下,這兩個頁面應該do docoument.domain =「company.org」這個工作:http://javascript.info/tutorial/same-origin-security-policy#the-document-domain-exception – u2702

+0

優秀,謝謝。鏈接確實有幫助。 – Sebas