axios攔截器做全局異常處理,類似java中的filter,並實現國際化


Axios 響應攔截器是這樣寫的:

axios.interceptors.response.use(res => {
  // 對響應數據做些什么
  return response
}, err => {
  // 對響應錯誤做些什么
  if(err.response.status == 401){
    //使用iview的消息提示,並引入國際化組建,並調用
    ViewUI.Notice(i18n.t('error.permission'));
    //也可以使用elementui的消息提示
    //ElementUI.Message(i18n.t('error.permission'));
  }else{
    //其他情況,是業務的錯誤,直接返回業務邏輯錯誤
    console.log('err', err);
    return Promise.reject(err);//Promise.resolve(err.sresponse);可在組件內獲取到服務器返回信息
  } 
})

Axios 請求攔截器是這樣寫的:

// http request 攔截器
axios.interceptors.request.use(
  config => {
    const token = sessionStorage.getItem('token');
    if (token ) { // 判斷是否存在token,如果存在的話,則每個http header都加上token
      config.headers.authorization = token;  //請求頭加上token
    }
    return config;
  },
  err => {
    return Promise.reject(err);//不能在組件中讀取err信息
  })

 

分享鏈接:https://www.jianshu.com/p/349b7ab263f8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM