Javascript 使用ajax+jQuery分页时如何更改URL路径

Javascript 使用ajax+jQuery分页时如何更改URL路径,javascript,jquery,ajax,node.js,Javascript,Jquery,Ajax,Node.js,我使用ajax post请求在我的站点的提要上进行分页。当获取请求后的数据时,我正在通过清除以前的数据并呈现来自请求的新数据来重新构造页面。我希望能够改变网址,以便保存新的网页链接将获得用户到当前网页 例如: 页面example.com/feed上的用户-查看第1页的内容 用户点击进入第2页->发送ajax帖子,并使用js no refresh更改页面上的数据 URL仍然是example.com/feed,但内容是example.com/feed?page=2 如何将URL设置为指向新页面而不触

我使用ajax post请求在我的站点的提要上进行分页。当获取请求后的数据时,我正在通过清除以前的数据并呈现来自请求的新数据来重新构造页面。我希望能够改变网址,以便保存新的网页链接将获得用户到当前网页

例如:

页面example.com/feed上的用户-查看第1页的内容 用户点击进入第2页->发送ajax帖子,并使用js no refresh更改页面上的数据 URL仍然是example.com/feed,但内容是example.com/feed?page=2 如何将URL设置为指向新页面而不触发刷新无重定向

我正在使用Nodejs+express。

您可以使用,但不支持

history.pushState({id: 'SOME ID'}, '', 'myurl.html');

不要忘记window.onpopstate,如果用户单击后退按钮,它会弹出。

将用户重定向到锚定点

<a href="#2" onclick="loadPage(2);">Page 2</a>

我知道你的目标是单页申请

虽然保留url很好,但请注意,您可能需要不同的url来直接访问应用程序的不同部分。不过,您可以使用AJAX加载内容并保持应用程序的流畅。方法是使用位置的散列部分


该框架为您提供了一个很好的基础,您可以尝试一下。

我不相信可能在不触发刷新的情况下更改URL的查询部分,这可能是由于安全问题。但是,您可以更改锚定,并使用事件侦听器来检测何时更改锚定

//Listener
$(window).on('hashchange', function() {
   if(loaction.hash.length > 1) {
      //The anchor has been changed.
      loadPageWithAjax("example.com/feed.php?page=" + location.hash.substring(1));
   } else {
      //Load standard page
      ...
   }
});
更换锚以加载新的进给

<a href="#2">Page 2</a>

记住不要使用用作id的锚,因为这会使浏览器滚动到该元素。

类似于?@JNF!非常感谢。
<a href="#2">Page 2</a>