鍍金池/ 問答/HTML/ 瀏覽器請求超時重發(fā)

瀏覽器請求超時重發(fā)

前端發(fā)送ajax請求,后臺由于響應(yīng)太慢,導(dǎo)致數(shù)據(jù)庫被插入兩條數(shù)據(jù)。
前端采用混合應(yīng)用APP,使用zepto.js的$.ajax()方法發(fā)送請求,后臺使用java開發(fā),服務(wù)器使用Tomcat。
前端訪問后臺的接口,后臺訪問中間服務(wù)的接口,中間服務(wù)訪問銀行的服務(wù)接口(不要問我為什么這樣做)
由于我們的服務(wù)和中間服務(wù)或者中間服務(wù)與銀行服務(wù)之間連接不暢,導(dǎo)致前端發(fā)送的ajax請求等待一分鐘后進(jìn)入error的回調(diào),提示用戶連接服務(wù)器失敗
但是后臺數(shù)據(jù)庫卻出現(xiàn)兩條繳費(fèi)記錄,間隔時間大多數(shù)是一分鐘,也有一條是幾十毫秒
求大神指教

回答
編輯回答
愿如初

1.避免表單重復(fù)提交,通過flag控制 或者設(shè)置disable
2.后臺也可以做過濾
3.設(shè)置網(wǎng)絡(luò)加載效果 這是點擊頁面無效

2017年5月5日 05:33
編輯回答
浪蕩不羈

估計是 $.ajax 默認(rèn)設(shè)置了超時時間,過了這個點返回超時異常。
而此時后臺并不知道,依然在執(zhí)行,可能10秒后,后臺處理完了,插入數(shù)據(jù)庫并且返回響應(yīng)了,此刻前端早已取消了對響應(yīng)的監(jiān)聽。

2017年2月6日 07:27
編輯回答
笨尐豬

可能是后端的問題,我猜測是請求超時然后自動重試,但是回滾處理沒做好

2017年12月19日 20:39