表单重复提交的原因:
1.用户重复点击提交按钮
2.POST请求返回状态码200,用户主动刷新页面
.....
对于第一个问题的解决,我的解决方法是采用js控制点击提交按钮,加个loading模态窗口防点击
对于第二个问题,可以采用$this->redirect()重定向,或者$this->success("message","重定向url"),说白了就是重定向,不管是重定向到当前提交的页面还是其他的页面,都可以的,因为重定向调用的是Get方法。防止表单重复提交的Post/Redirect/Get模式在我看来就是表单提交后重定向
$this->success()方法调用显示消息示例:
表单提交前:

后端调用$this->success()方法或者post请求返回前端显示:


本文探讨了导致表单重复提交的两个主要原因:用户误操作和页面刷新。针对这两个问题,提出了前端使用JavaScript控制提交按钮及加载提示,以及后端使用重定向策略(Post/Redirect/Get模式)来避免重复提交。通过展示代码片段,解释了如何使用$this->success()方法在后端实现重定向并显示消息,确保用户体验和数据一致性。
468

被折叠的 条评论
为什么被折叠?



