1

我正在编写一个 Javascript 驱动的单页应用程序,其中 URL 包含 # 参数,例如。( example.com/#foo/bar) 来表示应用程序状态(我考虑过使用各种 JS 框架,但由于各种原因不能)。

有时,哈希中可能有一个空格(或多个空格)。例如。example.com/#foo/bar bar2.

  1. 这安全吗?
  2. 散列部分是否还有其他不应使用的字符?

这个问题解决了 URL 部分中的空格问题,并建议转义空格。但是由于在 # 之后更改片段不会导致新的 HTTP 请求,这些规则适用吗?

4

1 回答 1

3

我将回避什么是安全的问题,并简单地说明根据RFC 2396的第 2.4.3 节,URL 中的空格是非法的。做非法的事情意味着你无法真正预测软件在遇到这样的 URI 时会做什么。

此外,如果涉及 JavaScript,您可能不想保证更改 URL 的哈希不会触发 XHR 并导致重新解析 URL 的网络活动。(例如,您可能决定要弄乱历史状态或进行一些分析跟踪onhashchange。)

于 2012-10-02T21:27:26.640 回答