環境:iphone 微信公眾號
多頁之間跳轉(非spa),統一處理ajax請求的錯誤,並將錯誤toast形式彈出,老是出現network error。但並不影響頁面使用。
原因
iphone保持頁面,但是頁面切換較快,有未返回的接口,會直接扔出錯誤:network error,如果統一處理錯誤,會彈出此錯誤。
解決
在統一處理錯誤彈窗通知時判斷if(error.status === 0) return
。若是axios,則if (message.request && message.request.status === 0) return
。
調試
應為在iphone中無法console看到效果,簡單調試方式是將內容顯示在網頁中,
xxx.catch(e => {
// 此處是抓取的錯誤信息,但是無法調試
errorObj = getErrorInfo(e)
document.querySelector('.error-content').innerHTML = JSON.stringify(errorObj , null, 4)
//讓錯誤顯示在.error-content元素中
})
function getErrorInfo(obj) {
let a = {}
for (let key in obj) {
a[key] = typeof obj[key] === 'object' ? getErrorInfo(obj[key]) : obj[key]
}
return a
}