“ SecurityError:操作不安全。”在浏览器js中推送历史记录

问题描述 投票:0回答:1

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

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

说我SecurityError: The operation is insecure。问题出在'//'中。当我尝试以一个斜杠推送URL时-它起作用。当我添加一个新的-它给我一个错误。

为什么两个斜杠不安全?

javascript security
1个回答
1
投票
[当您使用单个'/'时,将附加到当前域,当您使用双'/'时,您将用'translation'替换当前域名,由于相同的来源政策,因此不允许这样做。

新URL可以是与当前URL起源相同的任何URL。相反,仅当您仅修改哈希时,设置window.location可使您位于同一文档。

pushState mozilla docs

© www.soinside.com 2019 - 2024. All rights reserved.