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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章