尝试重新加载框架时尝试不安全的 JavaScript

问题描述 投票:0回答:3

这很烦人。我正在尝试这样做,以便当我按 F5 时,框架会重新加载。我已经得到了它,因此如果焦点位于主页(而不是 iframe)上,它就可以工作。然而,当我尝试实现类似的解决方案,甚至尝试与 iframe 进行通信时,我收到“不安全的 JavaScript 尝试访问框架”消息。更具体地说,确切的错误是:

不安全的 JavaScript 尝试从 URL 为 http://spow.tk/projects/Explorer/02/ 的框架访问 URL 为 http://www.spow.tk/projects/test 的框架。域、协议和端口必须匹配。

请帮忙,因为这真的很痛苦。 谢谢

javascript frame reload
3个回答
2
投票

这两个网站位于不同的域中。由于 Javascript 的安全限制,您无法跨域编写脚本。查看 WikipediaMozilla 了解更多信息(引用 Mozilla 以防止链接失效):

同源策略可防止从一个源加载的文档或脚本获取或设置来自另一源的文档的属性。该政策可以追溯到 Netscape Navigator 2.0。

如果两个页面的协议、端口(如果指定了)和主机相同,则 Mozilla 认为两个页面具有相同的来源。下表提供了与 URL http://store.company.com/dir/page.html:

的来源比较的示例
URL                                                 Outcome   Reason
http://store.company.com/dir2/other.html            Success  
http://store.company.com/dir/inner/another.html Success  
https://store.company.com/secure.html           Failure   Different protocol
http://store.company.com:81/dir/etc.html            Failure   Different port
http://news.company.com/dir/other.html          Failure   Different host

同源规则有一个例外。脚本可以将 document.domain 的值设置为当前域的后缀。如果这样做,较短的域将用于后续的来源检查。例如,假设位于 http://store.company.com/dir/other.html 的文档中的脚本执行以下语句:

document.domain = "company.com"; 该语句执行后,页面将通过 http://company.com/dir/page.html 通过来源检查。但是,出于同样的原因,company.com 无法将 document.domain 设置为 othercompany.com。

端口号由浏览器单独保存。对 setter 的任何调用(包括 document.domain = document.domain)都会导致端口号被 null 覆盖。因此,仅通过在第一个中设置 document.domain = "company.com" 就无法使company.com:8080 与company.com 通信。必须在两者中进行设置,以便端口号均为空。


0
投票

spow.tk
www.spow.tk
被认为是不同的域。

但是,您可以做的一件事是强制您的网站使用其中之一,以便不再出现此问题。例如,如果您使用的是 Apache,则可以修改

.htaccess
以将所有请求从
spow.tk
重定向到
www.spow.tk
(或者将
www.spow.tk
重定向到
spow.tk
,如果您愿意的话)。即使您的用户或代码引用一个域,请求也会重定向到您指定的域。


0
投票

"default_value": "翼手龙服务器", “user_viewable”:正确, “用户可编辑”:正确, “规则”:“必需|字符串|最大:30” "rules": "必需|字符串|最大:30", “字段类型”:“文本” }, { “名称”:“MOTD”, "description": "指定当天的消息", "env_variable": "MOTD", "default_value": "欢迎来到服务器", “user_viewable”:正确, “用户可编辑”:正确, “规则”:“必需|字符串|最大:20” "rules": "必需|字符串|最大:64", “字段类型”:“文本” } ]

© www.soinside.com 2019 - 2024. All rights reserved.