1

有一些我需要通过以下方式工作的Javascript:

://localhost

://服务器名称

:/www.domainnamefortheserver.com

当我使用引用域的 IFRAME 从http://servername运行脚本时- 它不会加载。

有没有办法让 Javascript 安全模型将服务器名称、本地主机和域识别为同一个“域”?

谢谢

4

4 回答 4

2

如果您在 UNIX 上运行,您可以编辑 /etc/hosts 为您的服务器提供一个虚假的 DNS 条目。

例如。

127.0.0.1 localhost www.domainnamefortheserver.com

然后,即使它尚未在实时站点上,您也可以始终以正确的名称连接到它。不要尝试直接破坏 javascript 安全性。

这也适用于 OSX。我希望 Windows 的工作方式有所不同。

于 2009-12-01T15:30:28.253 回答
2

如果您使用服务器端语言来生成页面,您可以像这样设置安全域:

document.domain = $CURRENT_HOSTNAME;

所以安全域将是用户请求的域。这是在黑暗中拍摄的,但我希望它仍然有帮助。

于 2009-12-01T15:33:11.193 回答
1

使用根相对 URI:

href="/foo/bar"

而不是绝对 URI:

href="http://example.com/foo/bar"

这样,文档将从相同的主机名加载。

于 2009-12-01T15:57:02.537 回答
0

你是什​​么意思

我的参考是域名

?

如果您在http://servername上的页面中加载脚本(使用<script src=''>),他们将可以访问http://servername上的所有内容,即使它们来自另一个域。

但是,如果您尝试对其他域进行 AJAX 调用,那么您就会遇到问题。您可以使用 Christopher 解释的技巧,即为域设置别名。

于 2009-12-01T15:34:03.313 回答