2013-04-18 17 views
10

Ich habe eine Frage bezüglich der gleichen Herkunft Politik. Meine Firma hat viele Subdomains und in einem von ihnen würde sie gerne einen Iframe mit einer anderen Subdomain darin haben und die Form des Iframes auffüllen. Ich habe über die Eigenschaft document.domain gelesen und muss diese in allen drei Domänen festlegen, kann sie aber nicht einfach testen, da jede Subdomain zu einer anderen Abteilung gehört. Also hier ist meine Frage.Gleiche Ursprung Politik - Subdomains und Root-Domain

Ist dies möglich, wenn die Subdomänen beide https sind und die Stammdomäne nicht? Ich habe mir die Beispiele auf Wikipedia angesehen, aber das hat mir nicht geholfen. Jede Hilfe würde sehr geschätzt werden.

Beispiel:

https://x.company.org

https://y.company.org

http: //company.org

x.company.org wird eine Seite mit einem Iframe von haben y.company.org die hat eine Form, die wir automatisch füllen möchten.

(Ich weiß, dass die Verbindungen unterbrochen sind, aber das ist, weil ich nicht mehr als 2 Links veröffentlichen kann)

Antwort

13

Die Dinge, die eine Domäne in diesem Zusammenhang Protokoll, Port und Domain so http://abc.com und https://abc.com definieren sind berücksichtigte verschiedene Domains von Ihrem Browser (http vs https).

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

https://x.company.org und https://y.company.org sind auch getrennte Bereiche betrachtet, aber sie können sowohl ihre Domain-Einstellung kommunizieren Quer zu https://company.org und entspannen.

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

Es gibt eine andere Option, um Sie jetzt als HTML5 ist in allen wichtigen Browsern. Mit der HTML5-PostMessage können Sie domänenübergreifend kommunizieren, vorausgesetzt, die empfangende Domäne möchte die Nachricht akzeptieren und antworten.

http://html5demos.com/postmessage2

+0

Danke für die Antwort. Nur um Ihre Antwort zu klären, als Sie sagten, sie können die Domain-Einstellung auf die Root-Domain entspannen. Muss die Root-Domain auch das gleiche Protokoll verwenden? Auch können wir leider nicht die Post-Nachricht verwenden, da die meisten unserer Benutzer immer noch IE7 und IE8 verwenden. –

+2

Ich habe Ihr Beispiel verstanden, dass x.company.org y.company.org in einem Iframe hostet. In diesem Fall sollten beide Seiten dooument.domain = "company.org" ausführen, damit dies funktioniert: http://javascript.info/tutorial/same-origin-security-policy#the-document-domain-exception – u2702

+0

Ausgezeichnet, Danke. Die Verbindung hat wirklich geholfen. – Sebas