Post/Redirect/Get (PRG) 模式

Post/Redirect/Get (PRG) 模式

1. 解决的问题

  • Step 1: 用户提交了一个表单
  • Step 2: 服务器返回了一个页面
  • Step 3: 用户刷新页面 (或者将该页面保存为书签下次访问)
  • 问题产生: 此时表单将被重复提交,引起一些不必要的问题

注意,这里说的提交表单不是用 ajax 异步请求把数据传到服务器,而是原生的 HTML form 的 submit不要混淆该模式的使用场景,否则会对该模式产生困惑

原生的表提交场景下,接下来展示的是后端返回的提交结果页面 !!!

2. 解决途径: Post/Redirect/Get (PRG)

即服务器收到 form 提交的 Post 请求后,并不是直接返回一个 2XX 的结果页面,而是返回一个 3XX 的重定向页面 (Redirect),定向到正确的结果页面 (Get)

更多参考

  • 示例代码:https://gist.github.com/ZhenningLang/342bf9d0ddfcf9a6d4ed9c10f97e8b7a
  • https://en.wikipedia.org/wiki/Post/Redirect/Get
  • https://www.cnblogs.com/TonyYPZhang/p/5424201.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章