使用http 302响应时,重定向时,URL中以“#”开头的部分已被浏览器剥离

时间:2019-07-29 03:18:13

标签: http browser anchor http-status-code-302

向API发送请求后,获得302响应:

带有标题:

  • Status = 302
  • Location = http://some.com/#token=xyz

然后浏览器(chrome)自动将另一个请求发送到http://some.com/,其中#token=xyz部分被条纹化,因此令牌丢失。

使用curl对此进行了测试,它不会像浏览器一样剥离#...部分。

也许将#替换为?是一种解决方案。但是该API来自第三方,而不是受控制的。


问题

  • 为什么浏览器会丢弃它,而curl不会呢? 是否认为# (ancher)部分在302案例中没有用?
  • #...重定向期间,有什么方法可以使浏览器保留302部分。
  • 还有其他获取#...部分的方法吗?

1 个答案:

答案 0 :(得分:0)

因为片段部分永远不会在请求中发送;它由用户代理在本地处理。参见https://greenbytes.de/tech/webdav/rfc7230.html#rfc.section.5.1.p.2