亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

防止表單重復提交的方案

防止表單重復提交的方案

LEATH 2019-02-28 06:59:20
1.按鈕只能單擊一次,加上confirm確認框2.使用token,requestScope和sessionScope確認對比這些就不要再說了,還有其他解決方案嗎?
查看完整描述

11 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

我覺得靠譜的就是驗證碼一類,或者提交之后重定向,你只在按鈕上下功夫,我如果直接從瀏覽器發起請求不走按鈕就沒用了。

查看完整回答
反對 回復 2019-03-01
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

1:點擊按鈕后使按鈕不可用
借助 js 之力,在提交按鈕點擊后,即取消按鈕的可用性??梢宰钃蹙W絡延遲的時候用戶反復點擊提交按鈕,導致多次提交。尤其對 ajax提交的站點有效;
甚至在 disable 按鈕后,可以稍微人性化地給出提示,比如使用 jQuery 代碼在提交時可以這樣:
$(".hisu").attr("disabled","disabled");
$(".hisu").attr("value","正在發布評論...");
2:使用session做標記
session 支持用戶整個會話的信息存儲,在用戶提交表單的同時使用 session 存儲用戶的提交信息,這種解決方法在業內被稱作為令牌法,即token。
基本的步驟是:
1.用戶提交數據的時候,創建session,例如創建一個名為 token 值為當前時間戳的 session;
2.存入數據庫的邏輯要在存入之前檢查是否有名為 token 的 session ,如果有,則返回錯誤,禁止提交;

這種方法應該算是在根源上杜絕了表單的重復提交。但是最好是能兩者結合起來,確保數據安全的前提下還可以保證用戶體驗。

查看完整回答
反對 回復 2019-03-01
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

  1. 利用數據庫唯一約束
  2. 保證提交操作的冪等性,這樣多次提交也不怕
查看完整回答
反對 回復 2019-03-01
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

一般的重復提交都是前端控制點擊事件,后端通過token+session(或者緩存)保證唯一提交;
之前做過一個防ajax重復點擊的功能是把URI和用戶唯一標識和一個次數標志放在緩存中,使用攔截器每次校驗此次請求的合法性,主要是由于我們此次ajax請求業務比較復雜耗時較長,不知道能不能適用你的需求

查看完整回答
反對 回復 2019-03-01
?
呼如林

TA貢獻1798條經驗 獲得超3個贊

前端方案 上一個請求鎖 false 請求后變為true 請求沒有回來之前retrun掉 回來后再置為false

查看完整回答
反對 回復 2019-03-01
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

前端處理,點擊提交不能再次點擊就可以實現
后端處理,判斷用戶提交頻率和表單標示位進行處理

查看完整回答
反對 回復 2019-03-01
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

登錄太頻繁, 后端可以檢測到, 返回一個錯誤碼, 前端就可以提示了, 讓他輸入驗證碼后再提交。

查看完整回答
反對 回復 2019-03-01
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

重復提交也就是在前端限制一下就可以,你總不能限制后臺接口不允許重復請求吧?換句話說,如果你的接口復合restful規范,重復請求的結果也是一樣的。

查看完整回答
反對 回復 2019-03-01
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

查看完整回答
反對 回復 2019-03-01
  • 11 回答
  • 0 關注
  • 518 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號