什么情況下,會出現重復提交請求


(1)、

瀏覽器提交兩次請求的問題

今天接到一個BUG,該功能是登陸錯誤的次數限制。在用戶登陸錯誤后,會提示用戶還可以輸錯X次,但是現在發現每次提示都不是遞減的,而是減2.后來調試發現是由於表單提交了兩次,所以導致程序的次數會每次減2.OK,問題找到了,那么為什么會出現這個問題呢,后來在網上查資料,發現是form的自動提交使得你提交了兩次,這個: <input type="image" src="style/images/button_save.gif" alt="保存草稿" onClick="toSave(publishForm)">
這里type=“image”和type=“submit”時form都會自動提交的,所以你onclick的時候form先提交了,然后執行你的js再提交了。
解決方案,把image改為button就不會了

(2)

chrome瀏覽器請求發送兩次的一種可能性

       今天測試get請求的時候發現一個很奇怪的問題,那就是在chrome瀏覽器下請求會發送兩次。但是在其他瀏覽器下卻表現的很正常。這說明不是程序本身的問題,而是瀏覽器的問題。

        於是,我一怒之下把所有的擴展程序全禁用了,之后就完全ok了。於是我再把擴展程序一個個啟用,最后總算找到了是JSON Formatter Chrome這個擴展程序導致了請求兩次的問題。

(3)

超時POST請求的瀏覽器重試行為不一致    參考:https://www.thinbug.com/q/15155014

(4) nginx 本身是容錯的,當一個server超時時,可以自動轉到另外一個server,引發重試。

(5)我用ajax調用一個webservice,由於服務耗用時間較長(大約20分鍾)
我發送一次請求(可以確認是一次)但是在服務端監控到的服務調用卻有3次,大約9分150毫秒一次。。。

最初數據量小的時候是沒有這個問題的,隨着數據量增長,處理時間加長,這個問題才逐漸暴露出來.

(6) 使用httpClient時,本身有重試機制(一般默認三次),這也會導致向服務端請求多次。

(7) 用戶點擊按鈕時,由於抖動,也可能引起請求多次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM