【问题标题】:javascript pushState on a subdomain throws exception子域上的 javascript pushState 引发异常
【发布时间】:2015-07-23 13:47:49
【问题描述】:

在我的 js 文件中:

window.history.pushState('','',slug);

我知道 pushState 方法的安全限制:

新网址必须与当前网址同源;除此以外, pushState() 会抛出异常。

但是,在我的网站中,我使用了一个域:www.mydomain.com,pushState 可以正常工作。但是当我在子域subdomain.mydomain.com 上调用该方法时,它会抛出一个奇怪的异常:

未捕获的安全错误:无法在“历史记录”上执行“pushState”:A 无法在其中创建 URL 为“http://0.0.7.210/”的历史状态对象 来源为“http://subdomain.mydomain.com”的文档。

我确实将 IP 0.0.7.210 称为内部设备,但我在开发 + 实时环境中遇到此异常。

顺便说一句,我确实通过 Route53 解析了我的子域。或许与此有关?

【问题讨论】:

  • 你用什么参数调用这个方法?看来您在第一个参数(该 IP)中使用的域与您所在的域不同。
  • 您传递的网址 很重要,因为它显然会导致错误。你明白错误信息是什么意思吗?
  • 该错误表明您正在传递http://0.0.7.210/this-image。你能console.logslug 确定吗?
  • 我想我找到了问题所在。我传递了一个额外的 / 导致错误。
  • 你可能想post an answer 然后:-)

标签: javascript


【解决方案1】:

事实证明,推送一个额外的/解决了这个问题。

改了

window.history.pushState('','',slug);

到这里

window.history.pushState('','','/'+slug);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-13
    • 2013-01-26
    • 2012-06-05
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多