我有一个使用 DurandalJS v1.2 构建的单页应用程序 (SPA),它与支付网关集成。SPA 将通过向其页面执行普通表单 POST 来进入支付网关的页面。
用户完成支付网关页面后,支付网关将向我的 SPA 发送表单 POST。
因为它是一个 POST,所以我在 ASP.NET MVC 中通过为正在发送的各种表单参数渲染一个 require.js 模块定义来处理它的服务器端,然后在需要处理结果的视图模型中使用这个模块。
这一切正常,我处理结果,然后留在同一个 SPA 页面上。这与 Post-Redirect-Get 的典型 Web 模式不同,因为 SPA 不执行任何重定向。
现在的问题是当按下浏览器刷新按钮时,它会弹出浏览器的重试后确认对话框(我不想要)。
有没有办法通过使用 JavaScript 来避免这种情况,还是 PRG 模式是唯一的方法?
注意:似乎更改 window.location、document.location 以及使用 history.replaceState 都不起作用(至少在 Chrome 中)。