如何在Javascript中重新加载没有POSTDATA警告的页面?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我想使用以下命令重新加载页面:

window.location.reload(true); 

但我收到POSTDATA警告,因为刷新功能要重新发送以前的POST表单数据。如何在没有此警告的情况下刷新我的页面?

提问于
用户回答回答于

只是改变window.locationJavaScript是危险的,因为用户仍然可以点击后退按钮并重新提交帖子,这可能会有意想不到的结果(如重复购买)。PRG是一个更好的解决方案

使用Post / Redirect / Get(PRG)模式

为避免此问题,许多Web应用程序使用PRG模式 - POST操作不是直接返回HTML页面,而是使用HTTP 303响应代码(有时使用302)和HTTP“Location”响应头)来返回重定向命令,指示浏览器使用HTTP GET请求加载不同的页面。然后可以安全地将结果页面加入书签或重新加载,而不会产生意外的副作用。

用户回答回答于

没有警告你不能刷新; 刷新指示浏览器重复上一个操作。如果重复最后一个操作涉及到重新提交数据,则由浏览器决定是否警告用户。

可以通过执行以下操作重新导航到同一页面并重新进行会话:

window.location = window.location.href;

扫码关注云+社区