Webkit将“#”变成%23导致404错误?
我只是建立一个简单的Ajax网站,但运行到Safari和Chrome的一个问题。我只是创建一个简单的重定向,如果用户进入一个页面,即Webkit将“#”变成%23导致404错误?
"/blog"
,他们将被重定向到
"/#/blog"
代码:
url = window.location.pathname
if(url != "/") {
window.location.pathname = "/#" + url
}
这是在Firefox伟大的工作但不幸的是WebKit的浏览器打开“#”变成“%23”,并给予404,例如:
"/%23/blog"
我如何避免这种情况?
谢谢, 亚历克斯
要设置路径,其中,根据定义,不包括散列。 Webkit正试图为你解决这个问题(Firefox只是更好地猜测你想要的东西)。试试这个:
window.location = '/#/blog';
pathname
是指所有主机后,并查询字符串和哈希之前。考虑这个:
window.location.hash = window.location.pathname;
window.location.pathname = "/";
我不太确定哪个浏览器(S)正在执行JavaScript的规范正确,但WebKit的行为似乎是正确的我。
但是当页面重新加载到“/”时它会删除散列吗? –
@Alex不是铬...不知道其他浏览器,但一般的散列被保存 –
用你的方法是从“/博客” =>“/博客#/博客” =>为“/” –
啊,完美!谢谢! –