history.pushstate和HTTP POST表单重新发布

paf*_*net 6 forms http-post page-refresh pushstate html5-history

我目前正面临HTTP post表单和历史pushstate的一个小问题.

当我的用户提交POST表单example.com/page-1然后单击此页面中的链接时,会将其重定向到example.com/page-2history.pushstate.JS脚本只是更改当前URL,将旧的推送到历史记录,然后显示新内容.这对我来说非常好.

问题:一旦用户打开example.com/page-2手动刷新页面(ctrl + r或刷新按钮),Chromes会提示用户再次提交表单; 但表格实际上已经example.com/page-1存在,并且没有理由在这个"新"页面再次询问它.

有没有办法在popstate更改中清除javascript中所有以前提交的数据,以防止从浏览器重新发送提示?或者我错过了我的历史状态?或者它目前还没有被浏览器实现?

我只用chrome测试它,因为我没有用其他浏览器实现pushstate.

zde*_*dev 1

也许尝试替换状态?看到这个

方法replaceState()

History.replaceState() 的操作与history.pushState() 完全相同,只是replaceState() 修改当前历史条目而不是创建新条目。

当您想要更新当前历史记录条目的状态对象或 URL 以响应某些用户操作时,replaceState() 特别有用。