如何在浏览器上按 F5(Refressing) 时停止重新提交页面 window

How to stop page re-submission while pressing F5(Refressing) on the browser window

目标

基本上,我想区分正常的页面提交和在浏览器上触发的刷新事件 window。这样我就可以停止重新提交。

简介

我有 Spring MVC App 将 Rest URLs 标记到每个控制器,例如,一个 Spring 控制器用于每个 CRUD 操作。现在,在向 Add/Edit 请求提交请求时,一个 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 键时停止重新提交表单。任何解决方法的前端或后端(重定向事件)都可以,但是,我很乐意 know/prefer 停止此类重新提交的理想方法是什么。

您可以使用 Post-Get-Redirect

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

并且有一个 method = RequestMethod.GET 方法 return 视图名称。

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

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