鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ vue中的axios如何做好錯(cuò)誤日志上報(bào)?

vue中的axios如何做好錯(cuò)誤日志上報(bào)?

據(jù)了解axios的攔截器不能攔截到.catch中的報(bào)錯(cuò)信息,這樣的話例如.then中有undefined情況就不會(huì)攔截到,只能在.catch中獲取錯(cuò)誤信息,而頁面中如果有多個(gè)axios的話每一個(gè)都catch顯得特別麻煩,有全局的catch或者其他更好的方法實(shí)現(xiàn)catch錯(cuò)誤上報(bào)嗎?

回答
編輯回答
久不遇

可以通過axios.interceptors.response進(jìn)行攔截,同時(shí)可以封裝一下response結(jié)果,不拋出reject: 比如錯(cuò)誤code 200-300之外的都進(jìn)行錯(cuò)誤處理(上報(bào))。

{
  code: 404,
  message: 'Not Found'
}
2017年11月21日 23:47
編輯回答
未命名

我覺得這個(gè)問題有待商榷。

接口返回錯(cuò)誤為什么要上報(bào)呢?理論上說接口能返回錯(cuò)誤接口能自己捕獲錯(cuò)誤呀,這些日志直接交給后端處理不就行了?前端還是應(yīng)該處理和用戶相關(guān)的錯(cuò)誤,即讓用戶理解錯(cuò)誤,正確的進(jìn)行下一步操作。

如果真的要對(duì)全部錯(cuò)誤都記錄上報(bào)的話,只能封裝一個(gè) axios,攔截所有返回,處理完再繼續(xù)了,也不麻煩。

2017年11月8日 08:30
編輯回答
真難過
window.addEventListener('unhandledrejection', event => ···);
2017年10月8日 09:37