更改ajax请求的url

Change url on ajax request

本文关键字:url 请求 ajax 更改      更新时间:2023-09-26

我想添加一些GET参数到页面URL。我正在加载这样的内容:

$("#content").load("shop.pl #content .product", $.param({categ:1)}));

如何将URL更改为具有相同的参数?categ=1

你可以使用HTML5的pushState API来实现这一点。然而,只有最新的浏览器支持它,IE甚至还没有在IE9中支持它。以前没有办法做到这一点。然而,有一个惯例,你会使用位置。哈希值,表示被ajax请求修改了状态的页面。想了解更多关于如何使用url哈希值来指示页面状态的信息,你可能想看看这个。

有一个库History.js,可以用来转换到pushState。它的API与pushState API非常接近,但如果浏览器不支持pushState,它将透明地提供哈希片段回退。

您的内容是通过AJAX加载的,所以也许URL应该有它的哈希片段修改-参见http://code.google.com/web/ajaxcrawling/docs/specification.html

您可以尝试使用pushState()方法操作可见URL(参见文档,您可能希望也阅读有关onpopstate事件)。

这样你就可以随心所欲地修改URL了。

关于如何在不重新加载页面的情况下更改URL的一些演示在这里:http://html5demos.com/history