SecurityError:操作不安全 - window.history.pushState()

IT技术 javascript html url history pushstate
2021-02-26 09:28:52

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

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

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

6个回答

确保您遵循同源政策这意味着相同的域、相同的子域、相同的协议(http 与 https)和相同的端口。

pushState 如何防止潜在的内容伪造?

编辑:正如@robertc 在他的评论中恰当地指出的那样,当来源是file:///. 更不用说您在本地测试file:///可能会遇到问题,当页面期望它从不同的源运行时(因此您pushState假设生产源场景,而不是本地主机场景)

如何使用pushStatefile:///呢?
2021-05-04 09:28:52

我们遇到了SecurityError:当用户在访问我们的站点之前禁用了他们的 cookie 时,操作是不安全的,任何尝试使用会话的后续 XHR 请求显然都会失败并导致此错误。

当用户禁用他们的 cookie 时,您可以将 XHR 请求代码包装在 try/catch 块中,并使用catch提示用户启用 cookie。window.localStoragewindow.history.pushState()或任何XHR请求。
2021-05-12 09:28:52

就我而言,我缺少“www”。来自我推送的网址。它必须完全匹配,如果您正在处理www.test.com,则必须推送到www.test.com而不是test.com

您应该尝试不使用文件夹资源管理器方法(即file://)打开文件,而是从http://(即http://yoursite.com/来自http://localhost/打开该文件

当从文件中调用另一个 javascript 文件而不放置 javascript“物理”地址时,我遇到了同样的问题。我通过从 html 中以相同的方式调用它来解决它,例如:“JS / archivo.js”而不是“archivo.js”