0

我正在构建一个只能通过 ftp 访问的网页:

ftp://192.168.0.1.cutthis/mypage.html

这个 url 在浏览器中打开页面,就像我使用 http 协议一样。

该页面包含一个动态 GUI。为了使其开发更容易,我已将所有 javascript 移至我可以访问的机器 (192.168.0.2),因此我可以更快速地对其进行编辑。在 mypage.html 的 html 源代码中,脚本行是:

<script type="text/javascript" src="file://///192.168.0.2/myscript.js"></script>

FF 和 Chrome 加载脚本(Firebug 证实了这一点)但不运行它。只有 IE 运行它。

如何强制 FF 和/或 Chrome 运行脚本?或者我该如何解决这个问题?

4

2 回答 2

0

MDN 谈到相同的来源政策

同源策略防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性。

myscript.js来自原点file:////192.168.0.2/,但它被加载到带有原点的页面中ftp://192.168.0.1.cutthis。我的猜测是跨域脚本无法执行您期望它执行的操作,因为它是从不同的来源加载的。

解决方案是将脚本和页面托管在同一个源上(即,也可以通过本地 HTTP 服务器来提供 HTML 页面file://,或者甚至更好地在本地 HTTP 服务器上提供它们)。

于 2012-08-21T14:46:01.723 回答
0

跨协议脚本?

方法一:

对于 Chrome 尝试扩展:LocalLinks

对于 FF 尝试扩展:LocalLink、本地文件系统链接、IE 选项卡

方法二:

使用 --allow-file-access-from-files 标志运行 Chrome,或者尝试使用其他禁用跨站点脚本的标志(警告:这很危险)

在 FF 中配置安全策略(为您的站点创建特殊策略 - 在此处阅读:Links_to_local_pages_don't_workSecurity_Policies

但是,我仍然不确定所有这些是否有帮助。FTP:URL 是一个特例

于 2013-10-20T15:47:10.863 回答