我正在使用jQuery,我的问题..
我的URL在ajax请求之后看起来像这样(使用hashchange函数来启用历史记录):
mysite.com/Content/#Disc%2Findex
我希望它看起来像这样:
mysite.com/Content/#Disc/index
我在js中注意到这一行:
url = url.replace(/^.*#/, '');
这与它有什么关系吗?当我在引号之间粘贴一个/
但它的内容不会加载。
答案 0 :(得分:10)
使用:
unescape(url)
将%2F转换为/。你提到的url.replace行会删除url,包括#字符,所以:
http://mysite.com/Content/#Disc/index
会变成:
Disc/index
答案 1 :(得分:2)
您的浏览器正在做正确的事情。 %2F
是HTTP编码的/
字符,从技术上讲,它应该在锚标记中。地点不是为人类观看而优化,而是“正确”。
答案 2 :(得分:1)
不推荐使用unescape,请使用
decodeURI(url)
decodeURIComponent(url)
答案 3 :(得分:0)
尝试使用AJAX请求中的urldecode()
或rawurldecode()
。