当我有这样的 URL 时:
http://website.com/?var=foo
然后 $_GET 数组如下所示:
Array
(
[var] => foo
)
但是当我有这样的 URL 时:
http://website.com/#location?var=foo
然后 $_GET 数组为空:
Array
(
)
这是正常行为吗?如果是这样,这种情况是否有解决方法?
当我有这样的 URL 时:
http://website.com/?var=foo
然后 $_GET 数组如下所示:
Array
(
[var] => foo
)
但是当我有这样的 URL 时:
http://website.com/#location?var=foo
然后 $_GET 数组为空:
Array
(
)
这是正常行为吗?如果是这样,这种情况是否有解决方法?
这是获取$_GET
值的正确 url 方式
http://website.com/?var=foo#location
主要问题是浏览器甚至不会发送带有片段部分的请求。片段部分在浏览器中被解析。所以它可以通过 JavaScript 访问。
您可以使用parse_url()将 URL 解析为位,包括片段部分
哈希后的值(包括哈希)永远不会发送到服务器,所以当你这样做时
http://website.com/#location?var=foo
服务器永远不会看到#location?var=foo
重新排序字符串,使查询字符串出现在哈希之前。?var=foo#location
最后加上#location,这样你的链接就变成了 http://website.com/?var=foo#location
这不是 url 的一般格式。
#location
是一个片段,它应该跟随查询字符串
http://website.com/?var=foo#location