偶然碰到一個小Bug
ajax請求執行后返回了一個canceled(狀態碼)
但是后台卻接受了參數並且執行成功0。0
剛看到這個狀態的時候是一臉懵逼的、、、、
之前並沒見過這樣的狀態碼
經過參數確認並且再三確認
並沒有發現什么異常、、、、
后來發現Url在請求的時候被莫名其妙的帶上了些參數
經過檢查html代碼發現莫名其妙的出現了一個form標簽
而我的提交按鈕絕然還是個submit!!
沒錯,我在給人家擦屁股
原因
究其原因
僅僅是因為form action事件與綁定與submit按鈕上的click事件同時觸發。
form action將表單內容以參數的形式追加到了url的末尾
而url變更則會導致頁面重新加載
而這恰恰就是導致post請求在執行后就立即被終止的罪魁禍首!!
小結
1.在URL變更后,會對當前正在執行的ajax進求進行中止操作
2.在使用到ajax的時候,盡量不要在form內使用submit進行提交