Tôi có một trang tại một máy chủ nội bộ, server1.mydomain.com/page.jsp và một trang khác tại một máy chủ nội bộ khác nhau, 10.x.x.x: 8081/page.aspx.SECURITY_ERR: Ngoại lệ DOM 18 khi áp dụng document.domain trên cả hai trang web. Làm cách nào để giải quyết vấn đề này?
On server1.mydomain.com, tôi đặt document.domain trong page.jsp như thế này:
//page.jsp on server1.mydomain.com
document.domain = document.domain;
Khi tôi phát hành một cảnh báo trên document.domain, nó đi lên như server1.mydomain.com.
Trên máy chủ 10.xxx, tôi đặt document.domain trong page.aspx, kết quả là như thế này:
//page.aspx on 10.x.x.x
document.domain = "server1.mydomain.com";
// test if same-origin policy violation occurs
document.getElementById("div_el").innerHTML = window.top.location.href;
Trong Safari 5.1.5, một lỗi bật lên trên bàn điều khiển:
SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent."
Từ những gì tôi hiểu, khi bạn đặt document.domain, số cổng được đặt thành rỗng; vì vậy, bạn phải đặt nó trên cả hai đầu, mà tôi đã làm. Sau đó, lỗi này xảy ra và tôi đang gãi đầu vì sao. Điều này có bất cứ điều gì để làm với thực tế tôi đang sử dụng 10.x.x.x và không phải là một tên miền thực tế?
Cảm ơn bạn.
Vì vậy, nếu tôi thay đổi cả hai thành mydomain.com, với điều kiện cả hai máy chủ đều nằm trên mydomain.com, nó sẽ hoạt động? Giả sử tôi có server1.subdomain.mydomain.com và server2.subdomain.mydomain.com. Nếu tôi đặt cả hai thành mydomain.com, nó có hoạt động không? – user717236
@ user717236: Nếu trang của khách hàng được lưu trữ từ 'mydomain.com', bạn sẽ không thể thực hiện các yêu cầu AJAX đến' server1.subdomain.mydomain.com' hoặc 'server2 ...' và sử dụng 'tài liệu. domain' sẽ không giúp ích gì. Nhưng nếu ngược lại là đúng, và trang của khách hàng được lưu trữ ví dụ từ 'server1.subdomain.mydomain.com', bạn có thể sử dụng' document.domain' để bạn có thể thực hiện các yêu cầu tới 'mydomain.com' . –
Ồ, tôi hiểu rồi. Vì vậy, trong trường hợp của tôi, tôi không nghĩ rằng nó sẽ làm việc, bởi vì các trang được lưu trữ hiệu quả tại hostname.subdomain.mydomain.com. Nếu một là serverX.mydomain.com và một là serverY.subdomain.mydomain.com, thì tôi có thể làm điều gì đó với nó. Trở lại với bản vẽ. Cảm ơn sự giúp đỡ của bạn. – user717236