1. 解决的问题
- Step 1: 用户提交了一个表单
- Step 2: 服务器返回了一个页面
- Step 3: 用户刷新页面 (或者将该页面保存为书签下次访问)
- 问题产生: 此时表单将被重复提交,引起一些不必要的问题
注意,这里说的提交表单不是用 ajax 异步请求把数据传到服务器,而是原生的 HTML form 的 submit,不要混淆该模式的使用场景,否则会对该模式产生困惑
原生的表提交场景下,接下来展示的是后端返回的提交结果页面 !!!
2. 解决途径: Post/Redirect/Get (PRG)
即服务器收到 form 提交的 Post 请求后,并不是直接返回一个 2XX 的结果页面,而是返回一个 3XX 的重定向页面 (Redirect),定向到正确的结果页面 (Get)
PRG_new.png
网友评论