如何在浏览器窗口中按F5(刷新)时停止页面重新提交

时间:2018-11-12 06:30:01

标签: jquery spring-mvc form-submit onsubmit

目标

基本上,我想区分普通页面提交和“浏览器”窗口上触发的刷新事件。这样我就可以停止重新提交。

简介

我有Spring MVC App,其中每个控制器都标记有Rest URLs,例如,每个CRUD操作都有一个Spring Controller。现在,在提交添加/编辑请求时,将POST请求发送给后端控制器以获取相应的ID。

For example
localhost.xxx/add --> add request is sent for a new id auto-generated from backend.
localhost.xxx/edit --> edit request is sent for the id\ record currently edited. 

问题

在我的情况下,再次提交后按F5时,旧请求将发送到具有相同ID的支持者。

达到

我想以某种方式按下F5键时停止重新提交表格。任何变通方法前端或后端(重定向事件)都可以,但是,我很高兴知道/更喜欢什么是阻止此类重新提交的理想方法。

1 个答案:

答案 0 :(得分:1)

您可以使用Post-Get-Redirect

完成POST后,将使用"redirect:<pageurl>"发送重定向请求,而不是返回视图名称。

然后使用method = RequestMethod.GET的方法返回视图名称。

因此post方法将向浏览器提供重定向响应,然后浏览器将使用get方法获取重定向网址,因为避免了重新提交。

引用avoid-form-resubmission-when-refreshing-the-page