更改查询字符串而不重新加载/刷新[重复]

Posted

技术标签:

【中文标题】更改查询字符串而不重新加载/刷新[重复]【英文标题】:Change querystring without reloading/refreshing [duplicate] 【发布时间】:2016-06-16 10:23:04 【问题描述】:

我想在不刷新页面的情况下更改我的点击网址。例如我的网址是http://test.com?search=test

当我点击搜索页面上的任何过滤器值(如“类别”)时,我的 URL 应该是:

http://test.com?search=test$category=cat1

当我点击另一个类别时,它应该是:

http://test.com?search=test&category=cat1,cat2

当我点击一个品牌时,URL 应该是:

http://test.com?search=test$category=cat1,cat2&brand=br1

当我取消选择一个类别时,URL 应该是:

http://test.com?search=test$category=cat2&brand=br1

请帮帮我。

【问题讨论】:

你在使用 ui-router 吗? 不,我没有使用 ui-router 我也有同样的问题。阅读this。 【参考方案1】:

你可以通过history api改变它

window.history.pushState("object or string", "Title", "/new-url");

在这种情况下,相对 /new-url 将设置为新标题。您可以在控制台中进行试验。如果你在 ***.com 上输入这个,url 会神奇地变成https://***.com/new-url

【讨论】:

这不是真的。您可以:html5 History API。 @Vohuman 绝对正确! 我认为从角度来说,为了激活 HIstory API,应该使用$locationProvider 服务,它是.html5Mode(true) 方法。

以上是关于更改查询字符串而不重新加载/刷新[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用多个查询字符串加载内容而不刷新

刷新数据表而不重新加载页面

刷新 UITableView tableFooterView 而不重新加载整个表数据

更改浏览器栏中的网址而不重新加载页面[重复]

JQuery AJAX 发布和刷新页面内容而不重新加载页面

ExpressJS 更改路由而不刷新