網上最多的解決此類問題的方法就是不儲存快取,即提交後表單上的資料不會被瀏覽器的快取儲存,如果此時再遇到重新整理或者後退請求時, 就會顯示「網頁已過期」,資料也就不會重複提交了,這就起到了阻止重新整理重複提交的效果。
下面以簡單的提交一篇帖子為例,介紹禁用快取防止重新整理重複提交的方法,表單資料報括「標題」和「正文」兩個部分。
以下是該方法的**(post.aspx):
//頁面載入
protected void page_load(object sender, eventargs e)
else
//否則的話(沒有提交,或者是頁面重新整理),不顯示任何資訊
showmsg.text = "";
}//提交按鈕(btnok)單擊事件
protected void btnok_click(object sender, eventargs e)
}
重複提交解決方案
struts 的token 機制能夠很好的解決表單重複提交的問題,基本原理是 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也會將使用者會話中儲存的舊的...
重複提交的解決方案
解決方案 js判斷 token驗證 想法一 應將按鈕隱藏或變灰,使其不可重複點選。var flog true function onsubmit success function data 想法二 設定引數,前後臺約定好特殊值,然後只有等於特殊值的時候,該資料才是有效的。var flog true ...
重複提交兩種解決方案
時序圖 新增流程圖 code生成規則 sessionid uuid,防止csrf攻擊 code校驗規則 判斷code相等後,從session中移除code的操作,會放在同步 塊中執行。如果所有請求用同乙個鎖物件,會有一定的效能消耗,為了降低同步鎖引起的效能消耗,根據不同的sessionid建立不同的...