直接处理文件时"Unsafe JavaScript attempt to access frame"



我收到此错误:

不安全的 JavaScript 尝试从具有 URL file://localhost/Users/bobrodes2/Documents/PD%20Manager%20UI/3.7/fieldcontacteditactions_modal.html 的框架访问带有 URL file://localhost/Users/bobrodes2/Documents/PD%20Manager%20UI/3.7/FieldContactAddEdit.html# 的框架。域、协议和端口必须匹配。

我已经完成了阅读,但我无法弄清楚这两个文件是如何成为不同的域(或端口)的。 它们都在同一台机器的同一文件夹中! 后一个文件是使用 jQuery 的 dialog() 方法的模态,我们正在将模态设置为一个 iframe。 不确定什么代码会有所帮助,但很乐意发布任何请求。

这是浏览器安全问题。例如,Chrome将拒绝对使用file://协议提供的任何文件的权限。

举个例子,如果你试图通过打开与file://c/myfiles/mytext.txt的连接来进行AJAX调用,Chrome将引发安全违规(因为为什么浏览器应该能够读取访问者的文件系统并将文件信息读入文本,存储在cookie中,或发送以进行跟踪)。

iFrame 相同,如果画布用于保存从不同域加载的图片,则编辑画布数据也是如此。

解决方案是设置一个网络服务器。 任何语言 - 我建议PHP,因为PHP服务器的安装时间现在几乎为零,这要归功于WAMP/EasyPHP/PHP5.4的内置Web服务器,等等...

。但是一旦您从 IP 地址或解析为 IP 地址(甚至0.0.0.0)提供服务,该源策略就应该消失。

默认情况下,通过 file://URI 提供的文件被视为在不同的域下。

要出于开发目的(暂时)停用 Chrome 下的同源政策,请尝试:http://joshuamcginnis.com/2011/02/28/how-to-disable-same-origin-policy-in-chrome/

最好的选择是在本地启动 http 服务器。

只需启动一个简单的Web服务器。

如果您使用的是OS X或以其他方式安装了Python,只需cd到要用作root的目录中并使用...

python -m SimpleHTTPServer

文档。

相关内容

最新更新