2009-04-13 30 views
15

Same Origin Policy Documentation diyor bu: Aynı kökeni kuralın bir istisnası vardırdocument.domain ayarı tüm (çoğu) tarayıcılarda çalışır mı?

. Bir komut dosyası, geçerli etki alanının sonekine, document.domain öğesinin değerini ayarlayabilir. Bunu yaparsa, daha kısa alan sonraki başlangıç ​​çekleri için kullanılır. Örneğin, http://store.company.com/dir/other.html de belgede bir komut dosyası aşağıdaki ifadeyi yürütür varsayalım:

document.domain = "company.com"; ifadesi yürütür sonra

, sayfa http://company.com/dir/page.html ile menşe onay geçerdi. Ancak, aynı nedenlerle, company.com, document.domain öğesini diğer şirketlere ayarlayamadı.

Tüm popüler tarayıcılar bunu destekliyor mu? Eğer değilse, hangileri?

cevap

18

Firefox 2,3, IE6,7,8, Chrome ve Safari 2 ve 3, Opera 9 tüm destek document.domain;

Öteki "yeni" tarayıcılar de büyük olasılıkla, ancak bu aslında

+0

Peki ya Opera? – cgp

+0

Opera 9 da yapıyor. – Alan

+0

@Alan: Bilgi için teşekkürler. Eğer paylaşabiliyorsan, bunu yapmanın sebebi neydi? Farklı makineler için AJAX-tipi istekleri kolaylaştırmayı kolaylaştırmakla ilgileniyorum, ancak başka kullanımlar varsa merak ediyorum. –

10

Belge alanı küçük harf olmalı ve kurallar gibidirler (document.domain kullanır) kodumu test ettik olanlar olacaktır bu

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

belgesinde document.domain = document.domain caos nedenini ayarlamayı aklınızda bulundurun. Bu yüzden her iki belgede de document.domain = "sample.com" ifadesini ekleyelim farklı alanda barındırılan sunucu ve uygulama? –

İlgili konular