从查询字符串中删除参数而不重新加载

naC*_*eex 5 javascript jquery angularjs

是否可以使用js从查询字符串中删除参数,我在下面尝试过,但遗憾的是它在浏览器控制台中不能在JS文件中工作.

 var clean_uri = location.protocol + "//" +       location.host+location.pathname;
 window.history.replaceState({}, document.title, clean_uri);
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法.

Jak*_*ell 1

这只在浏览器中起作用的原因是 window.history API 仅在您的浏览器中可用。我不太确定“来自文件”是什么意思。但正如一位评论者指出的那样,问题出在执行位置的上下文中。例如,如果您在 Node 环境而不是浏览器中执行此操作,则没有 window.history api。Node 甚至没有 window 对象。

由于您已经添加了 AngularJs 标志,因此应用程序内的路由可能正在侦听 URL 的更改并对其进行操作。Angular 可能有它自己的方式允许您更改 URL,但我不太熟悉,无法提供帮助。