最近在做前端異常監控上傳異常日志,發現通過ajax請求后台的時候,監控台返回該請求的狀態是canceled。
啟發
僅僅是由於之前為了在輸入賬號時讓瀏覽器進行自動補全,而將原先的div更換為了form,而不巧的是之前的登錄事件源使用的是button。
而至於為什么status = canceled,是由於在提交時,form action與綁定於button上的click事件會同時觸發。form action將表單內容以serach的形式追加至當前url上,url變更后會導致頁面重新加載, 而這正是導致post請求在執行后就被終止的原因。
原因多個接口同時異常,導致監聽上傳錯誤日志的ajax請求被終止,只有最后一個請求成功!
解決方案
最后發現是ajax請求默認是異步的。我把請求改成同步的就行了。設置如下參數:async: false。