2009-04-13 3 views
15

Same Origin Policy Documentation mówi tak:Czy ustawienie document.domain działa we wszystkich (większości) przeglądarkach?

Istnieje jeden wyjątek od tej samej reguły pochodzenia. Skrypt może ustawić wartość wartości document.domain na przyrostek bieżącej domeny. Jeśli to zrobi, krótsza domena zostanie użyta do następnej kontroli początkowej. Na przykład, zakładać skrypt w dokumencie w http://store.company.com/dir/other.html wykonuje następujące oświadczenie:

document.domain = "company.com";

Po że instrukcja jest wykonywana, strona przejdzie sprawdzanie pochodzenia z http://company.com/dir/page.html. Jednak z tego samego powodu firma.com nie może ustawić dokumentu.domena na innąfirma.com.

Czy obsługują to wszystkie popularne przeglądarki? Jeśli nie, to które nie?

Odpowiedz

18

Firefox 2,3, IE6,7,8, Chrome i Safari 2 i 3, Opera 9 wszystkie obsługują document.domain;

Inne „nowsze” przeglądarek prawdopodobnie będzie tak dobrze, jednak są to te, które ja faktycznie testowany mojego kodu (co sprawia, że ​​korzystanie z document.domain)

+0

Co powiesz na Opera? – cgp

+0

Opera 9 działa również. – Alan

+0

@Alan: Dzięki za informację. Jeśli możesz się podzielić, jaki był Twój powód? Chciałbym ułatwić wysyłanie żądań typu AJAX do różnych maszyn, ale jestem ciekawy, czy są inne zastosowania. –

10

domeny dokumencie powinny być małe i zasady są podobne jest to

// 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

, więc czy powinienem dodać document.domain = "sample.com" w obu serwer i aplikacja hostowana w innej domenie? –