2009-04-13 20 views
15

Die Same Origin Policy Documentation sagt dies:Funktioniert die Einstellung document.domain in allen (den meisten) Browsern?

Es gibt eine Ausnahme auf die gleiche Ursprungsregel. Ein Skript kann den Wert von document.domain auf ein Suffix der aktuellen Domäne setzen. Wenn dies der Fall ist, wird die kürzere Domäne für nachfolgende Ursprungsüberprüfungen verwendet. Zum Beispiel sei angenommen ein Skript im Dokument bei http://store.company.com/dir/other.html die folgende Anweisung ausführt:

document.domain = „company.com“;

Nach dass Anweisung ausführt, die Seite würde die Ausgangspunkt-Prüfung mit http://company.com/dir/page.html passieren. Mit derselben Argumentation konnte company.com document.domain zu othercompany.com jedoch nicht festlegen.

Werden alle gängigen Browser unterstützt? Wenn nicht, welche nicht?

Antwort

18

Firefox 2,3, IE6,7,8, Chrome und Safari 2 und 3, Opera 9 unterstützen alle document.domain;

Andere „neueren“ Browser wahrscheinlich auch werden, aber das sind diejenigen, die ich meinen Code tatsächlich getestet haben (die Verwendung von document.domain macht)

+0

Wie wäre es mit Opera? – cgp

+0

Opera 9 funktioniert auch. – Alan

+0

@Alan: Danke für die Info. Wenn Sie teilen können, was war der Grund dafür? Ich bin daran interessiert, AJAX-Anfragen an verschiedene Maschinen zu stellen, aber ich bin neugierig, ob es andere Anwendungen gibt. –

10

Document Domain sollte klein geschrieben werden und die Regeln sind wie dies

// Actual domain is "www.foo.com" 
document.domain = "foo.com"; // this is valid 

// Actual domain is "bar.foo.com" 
document.domain = "www.foo.com"; // this is invalid, "bar.foo.com" is not a subdomain of "www.foo.com" 

// Actual domain is "blah.bar.foo.com" 
document.domain = "bar.foo.com" // Ok 
document.domain = "foo.com" // Still ok 
document.domain = "bar.foo.com" // Invalid, you can't change it back to a more specific domain. 
+0

also sollte ich document.domain = "sample.com" in beiden hinzufügen Server und Anwendung, die in einer anderen Domäne gehostet wird? –

Verwandte Themen