2012-11-12 63 views
31

我在Firefox的控制台中收到此错误:SecurityError: The operation is insecure,有罪是HTML5功能:window.history.pushState()当我尝试使用AJAX加载某些内容时。它应该加载一些数据,但是Javascript会因错误而停止执行。SecurityError:操作不安全 - window.history.pushState()

我想知道为什么会发生这种情况。这是一些服务器配置错误吗?任何帮助,将不胜感激。

UPDATE:是的,这是一个服务器错误与域名不匹配:http://en.wikipedia.org/wiki/Same-origin_policy

+4

您是否正在访问'file:///'URL? – robertc

+0

@robertc你是什么意思?它始终是'http://'。我怀疑这可能是因为使用子域,但'pushState'试图推'/',所以它不应该有任何影响。 – Atadj

+0

我只是在检查... – robertc

回答

27

确保你跟随Same Origin Policy。这意味着相同的域,相同的子域,相同的协议(http vs https)和相同的端口。

How does pushState protect against potential content forgeries?

编辑:由于@robertc在他的评论恰如其分地指出,一些浏览器真正实现略有不同的安全策略时,原产地是file:///。且不说与file:///本地测试页面时希望它是从不同来源运行(所以你pushState假定生产产地的情况,而不是本地主机的情况)

2

在我来说,我是缺少的“www时可能会遇到的问题。 “从我推动的网址。它必须是精确匹配,如果你在www.test.com工作,就必须推到www.test.com而不是test.com

2

你应该尽量不要打开该文件与文件夹资源管理器的方法(即file://),但是从http://打开该文件(即http://yoursite.com/http://localhost/

0

我有同样的问题,当从一个文件调用另一个JavaScript文件没有把JavaScript“物理”地址。 我解决它通过调用它从HTML同样的方式,例如:“JS/archivo.js”而不是“archivo.js”

2

我们经历了的SecurityError:操作是不安全当用户禁用了Cookie在访问我们的网站之前,任何后续的XHR请求尝试使用会话将显然失败并导致此错误。

+0

你是如何解决这个问题的? –

相关问题