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

 

posted @ 2020-05-10 11:07  ppjj  阅读(1244)  评论(0编辑  收藏  举报