我在Firefox的控制台中遇到此错误:SecurityError: The operation is insecure
并且当我尝试使用AJAX加载某些内容时,有罪的是HTML5功能:window.history.pushState()
。它应该加载一些数据但Javascript在错误时停止执行。
我想知道为什么会这样。这是一些服务器配置错误吗?任何帮助将不胜感激。
更新:是的,这是域名不匹配的服务器错误:http://en.wikipedia.org/wiki/Same-origin_policy
答案 0 :(得分:36)
确保您关注Same Origin Policy。这意味着相同的域,相同的子域,相同的协议(http vs https)和相同的端口。
How does pushState protect against potential content forgeries?
编辑:正如@robertc在他的评论中恰当地指出的那样,一些浏览器实际上在原点为file:///
时实施略有不同的安全策略。更不用说当页面期望它从不同的原点运行时,使用file:///
进行本地测试时会遇到问题(因此您的pushState
会假设生产源方案,而不是localhost方案)
答案 1 :(得分:7)
我们遇到 SecurityError:当用户在访问我们的网站之前禁用了他们的cookie时,操作是不安全的,任何后续尝试使用会话的XHR请求都会明显失败并导致此错误。
答案 2 :(得分:3)
在我的情况下,我错过了'www。'从我推动的网址。它必须完全匹配,如果您正在使用www.test.com
,则必须转到www.test.com
而不是test.com
答案 3 :(得分:3)
您应该尝试不使用文件夹资源管理器方法(即file://
)打开文件,而是从http://
打开该文件(即http://yoursite.com/
来自http://localhost/
)< / p>
答案 4 :(得分:1)
当从文件中调用另一个javascript文件而没有放置javascript“物理”地址时,我遇到了同样的问题。 我通过从html中调用它来解决它,例如:“JS / archivo.js”而不是“archivo.js”
答案 5 :(得分:1)
创建PWA时,非https服务器上使用的服务工作者也会生成此错误。
答案 6 :(得分:0)
在index.js文件中将serviceWorker.unregister()替换为serviceWorker.register()
答案 7 :(得分:0)
我通过从http
协议切换到file
协议来解决了这个问题。
live-server [dirPath]
答案 8 :(得分:0)
我在ReactJS历史记录推送时遇到了这个问题,原来我正在尝试打开//link
(带有双斜杠)
答案 9 :(得分:0)
我遇到了同样的问题,这是由于将 <base href=>
设置为裸域,而我的服务器始终为 www 域提供服务。将 www 添加到 base href
中的 url 解决了该问题。