javascript - 使用history.pushState()更新URL中的参数

标签 javascript jquery ajax url

在我的页面上进行 AJAX 调用后,我使用 history.pushState 将一些参数附加到当前页面 URL。现在,在基于用户操作的同一页面上,我想使用相同或附加的参数集再次更新页面 URL。所以我的代码如下所示:

var pageUrl = window.location.href + "?" + queryString;
window.history.pushState('','',pageUrl);

queryString 是我的查询参数列表。

但是通过上面的代码,我的参数被附加到带有参数的 URL 中,在第二次 AJAX 调用后它们看起来如下所示:

http://sample.com?param1=foo&param2=bar&param1=foo,foo1&param2=bar&param3=another_foo

所以参数在 URL 中出现两次,在推送到历史记录之前有没有办法替换 URL 中的参数,或者有其他更好的方法在 javascript(jquery) 中实现此目的?

最佳答案

我认为您需要删除 window.location.href 并保留 '?' +.

var pageUrl = '?' + queryString;
window.history.pushState('', '', pageUrl);

关于javascript - 使用history.pushState()更新URL中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281937/

相关文章:

javascript - 从mySQL获取ID并使用php在ajax中设置localstorage

javascript - 确保随机分配的属性没有重复

javascript - 在 javascript/jquery 中获取 CSS 规则

javascript - 如何保持 html DOM 元素与关联的 javascript 对象同步?最佳实践

javascript - 获取文本 block 中的元素索引

Javascript/Jquery 搜索对值数组

javascript - 如何有条件地隐藏 native 脚本( Angular )中的选项卡项目?

javascript - AJAX 请求从聊天数据库获取最新的、唯一的消息

javascript - 如何在ajax错误时显示文件上传错误消息?

php - 使用 Dojo 提交表单并检索结果