不使用location.replace从浏览器历史记录中删除当前页面

3
我有一个页面example1.aspx,它调用另一个页面example2.aspx?id=5
example2.aspx中,我获取id(5)并进行ajax请求。
我不想显示?id=5,所以我使用
history.pushState("", document.title, window.location.pathname);
来删除window.location.search
这很有效,但我的问题是,如果用户单击返回按钮,浏览器会重定向到example2.aspx?id=5
我该如何从浏览器历史记录中删除页面example2.aspx?id=5

我阅读了许多其他问题的答案,建议使用location.replace,但这对我没有帮助, 如果我使用location.replace("example2.aspx"),则浏览器将刷新页面,并且当页面刷新时,如果没有? id,它会自动执行具有id = 1的ajax请求。

那么,是否可以在不使用location.replace的情况下从历史记录中删除页面?
1个回答

2

你想要的一切,历史都有:

  var stateObj = { foo: "bar" };
  history.replaceState(stateObj, "page 2", "bar.html");

哦...这很简单...我找不到那个文档。谢谢 - Broge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接