【发布时间】: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