在检查实时邮件网址时,我看到他们使用#
代替Query string
。
https://bluxxx.mail.live.com/#n=xxxxxxxxx&fid=x
删除#
时出现404错误。使用#而不是查询字符串是否有任何优势。它可以在php应用程序中实现。
答案 0 :(得分:3)
经常使用散列网址代替实际返回服务器以获取其他页面(即,Javascript拦截页面加载)。
哈希及其后的任何内容通常都不会发送到服务器......
想象一下以下场景......
<a id="SomeLink" href="#DoSomething">
然后使用Javascript ...
附加onclick$("#SomeLink").click(function() {...})
如果该点击功能不是return false
,则即使尚未向服务器发出请求,该网址的末尾也会显示#DoSomething
。
它也可以作为占位符来操作历史记录,因此您可以更好地控制后退/前进按钮(或许多其他客户端javscript技巧)。请参阅history.js作为示例。
答案 1 :(得分:2)
URL的哈希部分主要用于客户端处理。您的javascript可以读取它,如果您的页面上有一个命名锚点,它将滚动到该内容。浏览器在加载带有散列的URL时,URL的散列部分不会发送到服务器,其中查询字符串被发送到浏览器,因此可由PHP访问。