我得到在Firefox的控制台此错误: SecurityError: The operation is insecure
和有罪的是HTML5功能: window.history.pushState()
当我尝试加载与AJAX的东西。 它应该加载一些数据,但使用Javascript停止在错误执行。
我不知道为什么这可能会发生。 这是一些服务器错误配置? 任何帮助,将不胜感激。
更新:是的,它是与域名不匹配的服务器错误: http://en.wikipedia.org/wiki/Same-origin_policy
请确保您遵循同源策略 。 这意味着相同的域,子域相同,相同的协议(http和https)和相同的端口。
如何pushState的防止潜在的内容伪造?
编辑:由于@robertc恰当地在他的评论中指出,一些浏览器真正实现略有不同的安全策略时,原产地是file:///
。 且不说与本地测试时,可能会遇到问题file:///
当页面期望它是根据不同来源运行(所以你pushState
假定生产产地的情况,不是localhost的情况)
我们经历过的SecurityError:当用户关闭了Cookie之前访问我们的网站,尝试使用该会话的任何后续XHR请求显然会失败并导致该错误的操作是不安全的 。
在我来说,我失踪的“www。” 从URL我推。 它必须是精确匹配,如果你在工作www.test.com
,必须推到www.test.com
,而不是test.com
你应该尽量不要打开该文件与文件夹资源管理器的方法(即file://
),但打开该文件http://
(即http://yoursite.com/
从http://localhost/
)
我有同样的问题被称为从文件中其他JavaScript文件时,没有把JavaScript的“物理”地址。 我解决它通过调用它从HTML同样的方式,例如:“JS / archivo.js”,而不是“archivo.js”
当创建一个PWA,一个非HTTPS服务器上使用的服务人员也会产生这个错误。