比如点击此<a href='http://www.mysite.com/page.php?v=foo&z=bar'>
然后当页面加载完毕后,地址栏中的网址应该显示为http://www.mysite.com/page.php
而不显示查询。
就像你试图登录网络邮件一样,输入用户名和密码,他们使用查询字符串吗?但是当页面加载完毕后,URL没有任何查询。
答案 0 :(得分:0)
我的理解是,当我们更改地址栏的URL时,网页浏览器会在不刷新页面的情况下触发请求,即204我猜。
如果您不希望元素在URL用户中显示带有post方法的HTML表单
<form action="page.url" method="post">
<input type="hidden" name="param_name" value="value"/>
</form>
答案 1 :(得分:0)
更改网址而不重新加载网页的唯一方法是更改after
#
字符的内容。
在它之前发生任何变化都会导致页面重新加载。
答案 2 :(得分:0)
这是一个你可以采用的策略......我认为从UX的角度来看它确实很棒,但它实现了你的目标:
$_SESSION
)$_SESSION
就像我说的那样,我认为这不是一个引人注目的方法,并且它会带来你在代码中必须处理的潜在副作用,这似乎不值得痛苦。此外,即使使用此方法,包含查询字符串参数的URL也会显示在客户端的浏览历史记录中,因此您最终并未隐藏任何内容(假设这是您的目标)。
另一种需要考虑的方法是使用POST方法而不是GET方法来处理您的请求。您只需将参数作为请求的有效负载而不是查询字符串传递。
答案 3 :(得分:0)
这样做的最好方法是使用htaccess。 此文件通常位于您网站的根目录下以及索引文件。
您的htaccess文件必须以:
开头Options +FollowSymlinks
RewriteEngine on
然后您需要做的就是(对于您使用的示例):
RewriteRule ^page.php page.php?v=$1&z=$2
有关htaccess的更多信息:http://corz.org/serv/tricks/htaccess.php
答案 4 :(得分:0)
请参阅HTML5's pushState
并将其与使用AJAX加载的内容一起使用。
请注意,维护起来可能非常复杂,除了最新的浏览器之外,所有浏览器都不支持。