URL中是search在前还是hash在前?


如题,在url中,是search在前面还是hash在前面?

我看网上很多解释URL格式是这样的,也就是search在前
http://domain.com/?search=a#hash

但是在angular中,确实hash在前?

那么我想问一下,到底是hash在前还是search在前?

网络 前端 HTML url

冬馬かずさ 9 years, 10 months ago

hash 的部分是不会传到服务器的,即正常请求的话, # 后面的部分服务器是接收不到的

当然 js 检测 hash 然后发起不同的请求另说.

这个不存在什么规范的问题吧,看自身怎么架构的吧

署长发言人 answered 9 years, 10 months ago

这个在前后有什么关系吗??难道url中的参数还会影响取值?

xkidd answered 9 years, 10 months ago

对Angular.js了解不多,没太搞懂hash怎么在search前了……关于URI的格式是由 RFC 3986 规定的。

其中 ?search=a 这种叫 query #hash fragment
* query 的规定是以 第一个 ? 开始,至行尾或 # 结束。
* fragment # 为开始,行尾为结束。
也就是说 query 必须在 fragment 之前。

另外根据 query fragment 字符限定的规定,两者中都可以含有 / ? ,但不可以含有 # 。(还有其它的限制,这里是简要的说法,因为我们此处要讨论以 ? # 开头的字串)所以Angular.js中出现的 http://example.com/#/some/path?search=a#hash 实际上是不符合RFC规定的。但是此处是为了给不支持HTML5的浏览器提供兼容支持,也是无奈之举。

淒然D奈落 answered 9 years, 10 months ago

在URL里面,当然是 search 在前, hash 在后。

只是在 location 对象中, hash 属性在 search 属性前面。


 http://domain.com/?search=a#hash

最后,'?search=a' 整个地是 location.search ,'#hash'整个地才是 location.hash

那羽劍十三 answered 9 years, 10 months ago

Your Answer