history.replaceState 可以代替 post/redirect/get 吗?

gmr*_*gmr 5 javascript redirect post-redirect-get browser-history

我从不喜欢post-redirect-get模式,因为它需要在客户端和服务器之间进行额外的往返,它通常需要使用有状态和(在我看来)hacky flash 模式,而且,尽管主要原因之一是used 是为了防止重复提交表单,它实际上并没有很好地完成这项工作,因为在重定向完成之前,窗口中仍然可能出现重复提交。(这可以通过在客户端采取预防措施来防止,但这些预防措施使得 post-redirect-get 变得不必要,除非浏览器关闭 JavaScript 的情况极为罕见。)

然而,使用该模式的一个令人信服的理由是,人们通常希望客户端看到的 URL 与发布后的 URL 不同。我最近尝试删除 post/redirect/get 模式并仅history.replaceState用于在客户端上设置所需的 URL。我知道这不适用于 IE9 及更低版本,但我对此表示同意。但是,我忽略了这种方法是否存在其他一些重大问题?