"SecurityError: The operation is insecure."在浏览器 js 中推送历史记录



当我以下一种方式将历史记录推送到浏览器时:

window.history.pushState(
{
some_safe_data: data
},
'some secure title',
'//' + translation + '/' + book + '/' + chapter + '/'
)

它说我SecurityError: The operation is insecure.问题出在"//"中。当我尝试用一个斜杠推送网址时 - 它有效。当我添加一个新时 - 它给了我一个错误。

为什么两个斜杠不安全?

当您使用单个"/"时,您将附加到当前域,当您使用双"/"时,您将当前域名替换为"翻译",由于同源策略,这是不允许的。

新网址可以是与当前网址位于同一来源的任何网址。相反,仅当您仅修改哈希时,设置 window.location 才会使您保持在同一文档中。

pushState Mozilla docs

相关内容

  • 没有找到相关文章

最新更新