javascript - Webkit 将 "#"转换为 %23 导致 404 错误?

标签 javascript ajax webkit http-status-code-404

我只是构建一个简单的 ajax 网站,但在 safari 和 chrome 中遇到了问题。如果用户转到页面,我只是创建一个简单的重定向,即

"/blog" 

他们将被重定向到

"/#/blog"

代码:

url = window.location.pathname

if(url != "/") {
   window.location.pathname = "/#" + url
}

这在 FireFox 中运行良好,但不幸的是 webkit 浏览器将“#”转换为“%23”并给出 404,例如:

"/%23/blog"

如何防止这种情况发生?

谢谢, 亚历克斯

最佳答案

pathname 指的是主机之后、查询字符串和哈希之前的所有内容。考虑一下这个:

window.location.hash = window.location.pathname;
window.location.pathname = "/";

我不太确定哪些浏览器正确实现了 JavaScript 规范,但 WebKit 的行为对我来说似乎是正确的。

关于javascript - Webkit 将 "#"转换为 %23 导致 404 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7155081/

相关文章:

javascript - 对丢弃的 http 连接进行重复处理

php - 复选框显示错误

mysql - NameError - 未定义的局部变量 - 将数组从 ruby​​ 文件解析为 haml 文件

jquery - 从此 ajax 调用获取 http 状态

xcode - NSOpenPanel在选择文件时崩溃

javascript - 为国家、州/省/地区和城市选择菜单加载数据的 API 或数据库

javascript - jQuery Animate Left 和 Right 只发生一次

jquery - 使用 jquery select2 插件时,如果已列出 ajax 调用中的有效值,如何防止选择新标签?

JavaScript:有没有办法让 Chrome 中断所有错误?

html - 简单的 css 悬停问题