环境: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
}