Fenster.opener cross-domain-Aufruf
Ich habe zwei subdomains www.example.com
und api.example.com
. Auf einer Seite von der ersten domain, die ich öffnen popup-Fenster mit der url api.example.com/some/url
verwenden möchten window.opener
Objekt, das zum übergeben von Daten zu übergeordneten Seite. Aber ich bekomme Fehler:
Unsafe JavaScript attempt to access frame with URL http://www.example.com/some/page from frame with URL http://api.example.com/some/url. Domains, protocols and ports must match.
Ist es möglich, das Problem zu beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich, die übergabe von Daten zwischen http://www.example.com und api.example.com aber nicht mit Fenster.opener. Sie können einen Wert in ein cookie mit Javascript (
document.cookie
) auf der.example.com
domain (nicht http://www.example.com) und es wird gelesen werden http://www.example.com und api.example.com.Auf einer Seite aus http://www.example.com wenn Sie ausführen dieses Javascript:
(Quelle: http://techpatterns.com/downloads/javascript_cookies.php)
dann wird der "name" cookie lesbar aus api.example.com
api.example.com/some/url
zuwww.example.com/special/page?needle=value
und dann in die 'eigene Seite', die ich anrufen kann opener-Methode, und übergeben Sie die Nadel parameter.api.example.com
undwww.example.com
können Sie Daten zwischen Ihnen durch die Einstellung der Dokument-Domäne auf die beiden Skripte zuexample.com
Es ist kein bug, es ist ein Sicherheits-feature. Ansonsten, jemand anderes kann Ihre Website eröffnen, aus den ihrigen und injizieren in Ihre Seite, ohne Ihre Benutzer zu wissen.
Lesen: http://en.wikipedia.org/wiki/Same_origin_policy
Sicher, dass die gleiche SLD könnten darauf hinweisen, dass Sie den selben Ursprung haben, aber das ist nicht garantiert der Fall sein, zum Beispiel, hosting-sites, die es ermöglichen, Kostenlose subdomains wäre gefährdet.