我在我的富Web应用程序中使用基于哈希的导航。我还发现我需要创建指向单个资源实例的永久链接,但由于我不能使页面刷新,并且主页面从单个路径'/'加载,我不能使用 real 网址。相反,我想到使用哈希。让我举个例子,因为我知道上面的解释很糟糕。
所以,我没有http://example.com/path/to/resource/1,而是http://example.com/#path/to/resource/1
这似乎工作正常,浏览器认为'#path / to / resource / 1'是一个哈希(斜杠允许,我想),但我想知道URL哈希中允许哪些字符。是否有规范或RFC我可以阅读以找出浏览器的哈希标准行为?
编辑:好的,我太傻了。实际上没有检查斜杠是否适用于所有浏览器。 Chrome显然不喜欢它们。仅适用于FF。
答案 0 :(得分:6)
请注意:http://www.w3.org/Addressing/rfc1630.txt或http://www.w3.org/Addressing/URL/4_2_Fragments.html
基本上,您可以使用任何可以在URL中编码的内容。
注意:可能存在浏览器不一致。如果你害怕它们,你可能会使用序列化机制,比如将字符串转换为十六进制或其他东西(虽然会长两倍),或者使用某种类型的id。
答案 1 :(得分:2)
This document应该有所帮助。允许斜杠,但词汇分析可能因浏览器而异。
答案 2 :(得分:1)
我认为您可能会觉得有用:RFC3986
如果您使用PHP生成页面路径,您还可以urlencode()生成一个valide URL。