2009-04-13 17 views
15

Il Same Origin Policy Documentation dice questo:L'impostazione document.domain funziona in tutti i (più) browser?

C'è una sola eccezione alla stessa regola d'origine. Uno script può impostare il valore di document.domain su un suffisso del dominio corrente. In caso affermativo, il dominio più breve viene utilizzato per i controlli di origine successivi di . Ad esempio, assumere uno script nel documento a http://store.company.com/dir/other.html esegue la seguente dichiarazione:

document.domain = "company.com";

Dopo che istruzione viene eseguita, la pagina sarebbe superare il controllo di origine con http://company.com/dir/page.html. Tuttavia, con lo stesso ragionamento, company.com non è stato in grado di impostare document.domain su othercompany.com.

Tutti i browser più diffusi supportano questo? Se no, quali no?

risposta

18

Firefox 2,3, IE6,7,8, Chrome e Safari 2 e 3, Opera 9 supportano tutti document.domain;

Altri browser "più recenti" probabilmente sarà così, ma questi sono quelli che in realtà ho provato il mio codice (che fa uso di document.domain)

+0

Che ne dici di Opera? – cgp

+0

Opera 9 fa pure. – Alan

+0

@Alan: Grazie per le informazioni. Se puoi condividere, qual è stata la ragione per farlo? Sono interessato a rendere più semplice fare richieste di tipo AJAX a macchine diverse, ma sono curioso di sapere se ci sono altri usi. –

10

dominio documento dovrebbe essere minuscolo e le regole sono come questo

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

quindi dovrei aggiungere document.domain = "sample.com" in entrambi i server e applicazione che è ospitata in un dominio diverso? –

Problemi correlati