2013-04-18 14 views
10

Mam pytanie dotyczące zasad dotyczących tego samego pochodzenia. Moja firma ma wiele subdomen i w jednym z nich chciałaby iframe z inną subdomeną wewnątrz i wypełnić formularz iframe. Przeczytałem o właściwości document.domain i musiałem ustawić wszystkie trzy domeny, ale nie mogę tego łatwo przetestować z powodu każdej poddomeny należącej do innego działu. Oto moje pytanie.Zasady dotyczące tego samego pochodzenia - Subdomeny i domena główna

Czy jest to możliwe, gdy subdomeny są jednocześnie https, a domena główna nie jest? Spojrzałem na przykłady na wikipedii, ale to mi nie pomogło. Każda pomoc będzie bardzo ceniona.

przykład:

https://x.company.org

https://y.company.org

http: //company.org

x.company.org będzie mieć strony z iframe z y.company.org które ma formę, którą chcielibyśmy wypełnić automatycznie.

(wiem, linki są złamane, ale to dlatego, że nie mogę dodawać więcej niż 2 linki)

Odpowiedz

13

Rzeczy, które definiują domenę w tym kontekście to protokół, port i domena tak http://abc.com i https://abc.com są uznała różne domeny za przeglądarkę (http i https).

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

https://x.company.org i https://y.company.org są również uważane za oddzielne domeny ale obie poluźniają ustawienie domeny https://company.org i przekroju komunikacji.

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

Jest jeszcze jedna opcja dostępna dla was teraz jak HTML5 jest we wszystkich głównych przeglądarkach. Używając HTML5 postMessage, możesz komunikować się między domenami, zakładając, że domena odbierająca chce przyjąć wiadomość i odpowiedzieć.

http://html5demos.com/postmessage2

+0

Dzięki za odpowiedź. Tylko po to, by wyjaśnić swoją odpowiedź, gdy powiedzieliście, że mogą zrelaksować ustawienie domeny w domenie głównej. Czy domena główna musi również używać tego samego protokołu? Niestety, nie możemy użyć wiadomości, ponieważ większość naszych użytkowników nadal używa IE7 i IE8. –

+2

Rozumiałem twój przykład, aby powiedzieć, że x.company.org będzie hostować y.company.org w iframe. W takim przypadku obie strony powinny zawierać dokumentację docoument.domain = "company.org", aby to działało: http://javascript.info/tutorial/same-origin-security-policy#the-document-domain-exception – u2702

+0

Excellent, Dziękuję Ci. Link naprawdę pomógł. – Sebas

Powiązane problemy