$_SERVER['REQUEST_URI']是否包含#哈希标记?

5
如果我请求 site/page.php#hash,那么$_SERVER['REQUEST_URI'] 只是 /page.php
有没有一种方法在php中知道用户请求了带有 #hash 的页面(不需要后续的ajax)?
谢谢。
2个回答

11

简短回答:不行。

哈希值不会传递到服务器端,它只存在于客户端。这是设计上的考虑。如果需要在服务器端知道哈希值来解决问题,那么你选择的方法可能有误。


你可以在客户端使用 AJAX 查询服务器以获取哈希值到服务器。 - Alex Bailey
@Alex,问题明确规定了没有后续的ajax - user229044
啊,我明白了,刚才没注意到,抱歉。我之前也遇到过同样的问题,我是这样解决的。 - Alex Bailey

2
为什么不使用PHP的$_GET方法(而不是使用哈希(#))?
if(isset($_GET['hash'])){/*do something*/}

#只存在于客户端,php无法访问它。


没有问题,我猜这可能是因为那个投票者没有提供评论的缘故 :) - Alex Bailey
哈哈,是的,只是有点小问题。现在因为那个“-1”,没有人会考虑我的答案了。 - Naftali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接