javascript - 两个站点上的 SECURITY_ERR : DOM Exception 18 when applying document. 域。我该如何解决这个问题?

标签 javascript cross-domain user-agent same-origin-policy domexception

我在内部服务器 server1.mydomain.com/page.jsp 有一个页面,在不同的内部服务器有另一个页面,10.x.x.x:8081/page.aspx。

在 server1.mydomain.com 上,我在 page.jsp 中设置 document.domain 如下:

//page.jsp on server1.mydomain.com
document.domain = document.domain;

当我在 document.domain 上发出警报时,它显示为 server1.mydomain.com。

在10.x.x.x服务器上,我在page.aspx中设置了document.domain,结果是这样的:

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

在 Safari 5.1.5 中,控制台会弹出一个错误:

SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent."

据我了解,当您设置 document.domain 时,端口号设置为 null;所以,你必须在两端都设置它,我就是这样做的。然后,这个错误发生了,我在摸不着头脑。这与我使用的是 10.x.x.x 而不是实际域名有什么关系吗?

谢谢。

最佳答案

您只能使用 document.domain 从更具体的子域更改为更不具体的域。喜欢...

console.log(document.domain); // server1.mydomain.com

document.domain = 'mydomain.com'

console.log(document.domain); // mydomain.com

它不能用于设置更具体的子域或完全不同的域。

关于javascript - 两个站点上的 SECURITY_ERR : DOM Exception 18 when applying document. 域。我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034431/

相关文章:

javascript - 将自定义用户代理关联到特定的 Google Chrome 页面/标签

javascript - 有没有在 Firefox 浏览器中检测 Windows-11 和 Windows-10 的方法?

javascript - 如何在 Javascript 中检查函数的返回值是否未定义

javascript - 异步 JSON.stringify

javascript - 单元测试 Backbone.Marionette 监听器

javascript - 使用 reCAPTCHA 响应 Native

javascript - NodeJs 对象基于键值 Id 合并

javascript - 脚本权限错误,即使启用了 CORS

javascript - JSONP 中的无效标签错误

css - 如何检测用户的浏览器并应用特定的 CSS 文件?