2009-04-13 28 views
15

Các Same Origin Policy Documentation nói điều này:Cài đặt document.domain có hoạt động trong tất cả (hầu hết) trình duyệt không?

Có một ngoại lệ với cùng quy tắc xuất xứ . Tập lệnh có thể đặt giá trị của document.domain thành hậu tố của miền hiện tại. Nếu có, miền ngắn hơn sẽ được sử dụng cho kiểm tra nguồn gốc tiếp theo. Ví dụ, giả một kịch bản trong tài liệu tại http://store.company.com/dir/other.html thực hiện các tuyên bố sau:

document.domain = "company.com";

Sau tuyên bố đó thực hiện, trang sẽ vượt qua kiểm tra xuất xứ với http://company.com/dir/page.html. Tuy nhiên, do cùng một lý do, company.com không thể đặt document.domain đến othercompany.com.

Tất cả các trình duyệt phổ biến có hỗ trợ điều này không? Nếu không, cái nào thì không?

Trả lời

18

Firefox 2,3, IE6,7,8, Chrome và Safari 2 và 3, Opera 9 hỗ trợ document.domain;

khác các trình duyệt "mới" có thể sẽ là tốt, tuy nhiên đó là những người mà tôi đã thực sự thử nghiệm mã của tôi (mà làm cho sử dụng document.domain)

+0

Làm thế nào về Opera? – cgp

+0

Opera 9 cũng vậy. – Alan

+0

@Alan: Cảm ơn thông tin. Nếu bạn có thể chia sẻ, lý do của bạn để làm như vậy là gì? Tôi quan tâm đến việc làm cho nó dễ dàng hơn để làm cho AJAX-loại yêu cầu cho các máy khác nhau, nhưng tôi tò mò nếu có sử dụng khác. –

10

Document miền nên chữ thường và các quy tắc cũng giống như này

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

vì vậy tôi nên thêm document.domain = "sample.com" vào cả hai máy chủ và ứng dụng được lưu trữ trong miền khác? –

Các vấn đề liên quan