javascript - “SecurityError:操作不安全。” 在浏览器js中推送历史
问题描述
当我以另一种方式将历史记录推送到浏览器时:
window.history.pushState(
{
some_safe_data: data
},
'some secure title',
'//' + translation + '/' + book + '/' + chapter + '/'
)
它说我SecurityError: The operation is insecure
。问题出在'//'中。当我尝试用一个斜杠推送 url 时——它有效。当我添加一个新的时——它给了我一个错误。
为什么两个斜杠不安全?
解决方案
当您使用单个“/”时,您附加到当前域,当您使用双“/”时,您将当前域名替换为“翻译”,这是不允许的,因为同源策略。
新 URL 可以是与当前 URL 同源的任何 URL。相反,仅当您仅修改哈希时,设置 window.location 才能使您保持在同一个文档中。
推荐阅读
- mysql - Docker MySQL连接在不同端口上被拒绝
- r - 在 R 中将字符串处理为数值变量
- kubernetes - 从自我管理的证书切换到谷歌管理的证书问题:“指定的 IP 地址正在使用中,会导致冲突。”
- python - 线性回归的回归分析
- c# - ASP.NET MVC & C# DropDownListFor 设置和获取值
- excel - 突出显示同一行 Excel 上的重复项
- php - 如何在我的本地 apache (php) 中设置 aws DB 常量?
- python - 如何在序列中添加每第 n 个?
- python - 如何记录配置文件?
- graphql - Apollo-fetch GraphQL 请求