2011-08-18 24 views
13

Vì một số lý do, Chrome không hỗ trợ document.domain nữa và sẽ phát ra lỗi khi dòng được đọc trong iframe chứa tên miền phụ và tên miền phụ chứa iframe. Có cách nào để khắc phục điều này?Giải pháp Chrome cho document.domain

Lỗi: Lỗi của router: SECURITY_ERR: DOM ngoại lệ 18

Trả lời

15

Document miền nên chữ thường và các quy tắc là như thế 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

Chỉ trong trường hợp bất cứ ai đang tìm kiếm một tham chiếu: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy – juminoz

0

document.domain nên làm việc cho iframe miễn là bạn đang ở trên cùng tên miền:

iframe=document.querySelector('iframe'); 
console.log(iframe.contentDocument.domain) 

Nếu bạn đang cố gắng truy cập tài liệu của iframe trên miền khác với khung chính, bạn sẽ gặp phải lỗi bảo mật mà bạn đang gặp phải.

Lưu ý rằng các tên miền phụ được coi là lĩnh vực khác nhau, vì vậy bạn sẽ chạy vào các vấn đề tên miền chéo: A question about cross-domain (subdomain) ajax request

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