我正在构建一个我只能通过ftp访问的网页:
ftp://192.168.0.1.cutthis/mypage.html
这个网址在浏览器中打开页面,就像我使用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运行脚本?或者如何过度解决问题?
答案 0 :(得分:0)
MDN谈到same origin policy:
相同的原始政策可防止从一个来源加载的文档或脚本从另一个来源获取或设置文档的属性。
myscript.js
来自原始file:////192.168.0.2/
,但它被加载到原始ftp://192.168.0.1.cutthis
的网页中。我的猜测是,跨域脚本无法执行您希望它执行的操作,因为它是从不同的源加载的。
解决方案是在同一个源上托管脚本和页面(即,还在file://
上提供HTML页面,甚至更好,在本地HTTP服务器上为它们提供服务)。
答案 1 :(得分:0)
跨协议脚本编写?
方法1:
对于Chrome试用版扩展程序:LocalLinks
对于FF尝试扩展:LocalLink,本地文件系统链接,IE选项卡
方法2:
使用--allow-file-access-from-files标志运行Chrome 或者可以尝试禁用跨站点脚本的其他标志(waring:这很危险)
在FF中配置安全策略(为您的网站创建特殊政策 - 请在此处阅读:Links_to_local_pages_don't_work,Security_Policies)
但是,我仍然不确定这一切是否有帮助。 FTP:URL是一种特殊情况