2013-04-18 4 views
10

У меня есть вопрос относительно той же политики происхождения. У моей компании много поддоменов, и в одном из них они хотели бы иметь iframe с другим субдоменом внутри него и заполнить форму iframe. Я прочитал о свойстве document.domain и о том, что мне нужно будет установить все три домена, но не может просто просто проверить это из-за каждого поддомена, принадлежащего другому отделу. Вот мой вопрос.Та же политика происхождения - субдомены и корневая область

Возможно ли это, когда субдомены являются как https, так и корневым доменом нет? Я посмотрел на примеры в Википедии, но это не помогло мне. Любая помощь будет принята с благодарностью.

Пример:

https://x.company.org

https://y.company.org

HTTP: //company.org

x.company.org будет иметь страницу с фрейма из y.company.org, который имеет форму, которую мы хотели бы заполнить автоматически.

(Я знаю, что ссылки разбиты, но это потому, что я не могу отправить более 2 ссылки)

ответ

13

Вещи, которые определяют область, в этом контексте являются протокол, порт и домен так http://abc.com и https://abc.com являются в вашем браузере учитываются разные домены (http vs https).

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

https://x.company.org и https://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 будет размещать y.company.org в iframe. В этом случае обе страницы должны делать docoument.domain = "company.org" для этого: http://javascript.info/tutorial/same-origin-security-policy#the-document-domain-exception – u2702

+0

Отлично, Спасибо. Ссылка действительно помогла. – Sebas

Смежные вопросы