java後臺接口怎麼防止重複提交?

T.P.D.


這個問題主要以前端解決為主,後端打配合的解決方案。

1.前端來講可以採用同步提交,在後端接口返回成功之前禁止相應點擊事件,提交後直接置灰按鈕,待有效編輯後再使能按鈕,這種方案最簡單有效。

2.後端接口需要做冪等設計,比如重複刪除已經刪除的訂單號,需要判空後接口返回正確即可,又如重複下單,可以看訂單狀態,如果沒完成支付的同一商品,接口返回提示完成訂單再下單。


hallojava


1、Meta法在你的表單頁裡HEAD區加入這段代碼:

2、令牌法生成一個令牌保存在用戶session中,在form中加一個hidden域,顯示該令牌的值,form提交後重新生成一個新的令牌,將用戶提交的令牌和session中的令牌比較,如不同則為重複提交。

3、禁用按鈕法


英語流利講


1。token機制,每次提交都會帶上tonken,驗證完刪除。

2。如果業務上面不允許某些字段重複,可以在數據庫表上設置加上唯一性約束。

3。利用redis緩存提交信息,可以設置幾分鐘過期時間,保存時驗證表達信息是否存在。

4。前端提交後將按鈕置為不可用。


分享到:


相關文章: