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

Javascript “SecurityError:操作不安全。”正在浏览器js中推送历史记录,javascript,security,Javascript,Security,当我以下一种方式将历史推送到浏览器时: window.history.pushState( { some_safe_data: data }, 'some secure title', '//' + translation + '/' + book + '/' + chapter + '/' ) 它说我安全错误:操作不安全。问题出在“/”中。当我尝试用一个斜杠推送url时,它

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

window.history.pushState(
          {
            some_safe_data: data
          },
          'some secure title',
          '//' + translation + '/' + book + '/' + chapter + '/'
        )
它说我安全错误:操作不安全。问题出在“/”中。当我尝试用一个斜杠推送url时,它就工作了。当我添加一个新的-它给我一个错误


为什么两个斜杠不安全?

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

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


当您使用单“/”时,您将附加到当前域;当您使用双“/”时,您将用“翻译”替换当前域名,这是不允许的,因为同源策略

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


所以我需要添加原点?=>window.location.origin+'/'…否,当您使用'/'时,您需要将域组件添加到字符串中,如'//example.com/'+translation+'/'+book+'/'+chapter+'/',,但该域必须与您在执行script.FWIW://translation/时所在的页面具有相同的源。。表示a。因此我需要添加原点?=>window.location.origin+'/'…否,当您使用'/'时,您需要将域组件添加到字符串中,如'//example.com/'+translation+'/'+book+'/'+chapter+'/',,但该域必须与您在执行script.FWIW://translation/时所在的页面具有相同的源。。代表一个。