一般vue项目都会对axios进行封装,后台统一规范默认让服务器对所有请求都返回成功,然后在成功的对象里面包装一层对象result,里面也包含code,msg,result信息,前端拿这个result里面的code来做判断接口是否相应成功;类似如下:

const api = axios.create({
   baseURL:'',
   transformRequest;[data =>{qs.stringify(data)}]
})

api.interceptors.response.use(function (response) {
    return response;
  }, function (error) {
    let data = {}
    if(err.message.indexOf('timeout')>-1){
      data.message = '请求超时'  
      return { data }
    }
    。。。
    。。。
    return error;
  });

 

平常用惯了项目封装的axios的请求和异常处理;突然一下子不用封装的,单独将axios引入用(比如多个文件和表单数据一起上传);一下没想出来,一查资料其实也简单,怕忘记,记录如下:

两种方式:

axios.interceptors.response.use(function (response) {
    return response;
  }, function (error) {
    console.log(error.response)  //服务器返回的错误信息,常见的400请求错了,这里能看到400请求返回的错误信息
    return Promise.reject(error);
  });
axios.get('/user/12345')
  .catch(function (error) {
    if (error.response) {
      // 请求已发出,但服务器响应的状态码不在 2xx 范围内
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else {
      console.log('Error', error.message);
    }
    console.log(error.config);
  });