2

当我有这样的 URL 时:

http://website.com/?var=foo

然后 $_GET 数组如下所示:

Array
(
    [var] => foo
)

但是当我有这样的 URL 时:

http://website.com/#location?var=foo

然后 $_GET 数组为空:

Array
(
)

这是正常行为吗?如果是这样,这种情况是否有解决方法?

4

4 回答 4

5

这是获取$_GET值的正确 url 方式

http://website.com/?var=foo#location

主要问题是浏览器甚至不会发送带有片段部分的请求。片段部分在浏览器中被解析。所以它可以通过 JavaScript 访问。

您可以使用parse_url()将 URL 解析为位,包括片段部分

资源

于 2013-07-17T04:02:50.817 回答
4

哈希后的值(包括哈希)永远不会发送到服务器,所以当你这样做时

http://website.com/#location?var=foo

服务器永远不会看到#location?var=foo

重新排序字符串,使查询字符串出现在哈希之前。?var=foo#location

于 2013-07-17T04:05:29.097 回答
1

最后加上#location,这样你的链接就变成了 http://website.com/?var=foo#location

于 2013-07-17T04:03:43.100 回答
1

这不是 url 的一般格式。

#location是一个片段,它应该跟随查询字符串

http://website.com/?var=foo#location
于 2013-07-17T04:04:52.793 回答