我正在编写一个Javascript驱动的单页应用程序,其中URL包含#param,例如。 (example.com/#foo/bar
)表示应用程序状态(我考虑过使用各种JS框架但由于各种原因不能)。
有时,哈希可能在其中有一个空格(或许多空格)。例如。 example.com/#foo/bar bar2
。
此question解决了URL部分中的空格问题,并建议转义空格。但是,由于在#之后更改片段不会导致新的HTTP请求,这些规则是否适用?
答案 0 :(得分:3)
我将回避什么是安全的问题,并根据RFC 2396的第2.4.3节简单说明网址中的空白非法 。做非法事情意味着你无法真正预测遇到这样一个URI时软件会做什么。
此外,如果涉及JavaScript,您可能不希望保证更改URL的哈希不会触发XHR并导致重新分析URL的网络活动。 (例如,您可能决定要混淆历史状态或进行一些分析跟踪onhashchange
。)