我需要从get请求中获取标签,如下所示:/v1/search/search#tag?query=word
或/v1/search/search?query=word#tag
我尝试获取查询字符串:Yii::$app->request->getQueryString()
但在第一种情况下,它完全忽略查询参数,而在第二种情况下它找到查询参数,但忽略hashtag。有什么方法可以从请求中获得标签吗?
你不能(直接(在服务器上获得uri片段值(hashtag(
这不是Yii
的限制,url的锚#
部分用于客户端,并且不会发送到服务器。
根据维基百科页面的URI片段:
片段取决于文档MIME类型,并由客户端(web浏览器(进行评估。
客户端在检索文档时不应该向服务器发送URI片段,并且在没有本地应用程序帮助的情况下(见下文(,片段不会参与HTTP重定向。
您可以查看网络流量、服务器日志、Yii
调试器日志,或者在浏览器控制台上进行检查,例如,如果您尝试浏览https://example.com/user/123#1234
,服务器将只获得https://example.com/user/123
。
在发送请求之前,可以绕过将值转换为参数的限制。
// you could update
https://example.com/user/123#1234
// to
https://example.com/user/123?tag=1234