美文网首页前端框架
Vue 后台管理项目9-axios拦截器

Vue 后台管理项目9-axios拦截器

作者: 夜半暖人心 | 来源:发表于2019-03-11 11:25 被阅读21次

    axios拦截器:统一设置请求前和响应后的操作

    传送门https://github.com/axios/axios

    1.拦截器的作用:简化开发

    //官方文档
    // Add a request interceptor
    axios.interceptors.request.use(function (config) {
        // Do something before request is sent
        return config;
      }, function (error) {
        // Do something with request error
        return Promise.reject(error);
      });
    
    // Add a response interceptor
    axios.interceptors.response.use(function (response) {
        // Do something with response data
        return response;
      }, function (error) {
        // Do something with response error
        return Promise.reject(error);
      });
    

    2.统一设置请求权限必须的token信息

    //在vue-axios.js中设置axios拦截器
    
    // 请求拦截器:请求发送之前,触发回调函数,将所有信息拦截存储在config
    axios.interceptors.request.use((config)=> {
      // console.log(config);
    
      //判断请求的是登录还是其他的地址
      if(config.url.indexOf('/login')!=-1){
        //登录接口,不做token信息添加
      }else{
        //非登录接口,为了一些权限接口,做token信息添加
        config.headers.Authorization = window.sessionStorage.getItem('token');
      }
      //返回处理过的axios设置
      return config;
    }, function (error) {
      //出错啦
      console.log(error);
      return Promise.reject(error);
    });
    
    

    3.统一设置了响应的状态提示

    //在vue-axios.js中设置axios拦截器
    
    //响应拦截器:请求响应回来之后,会触发这个回调函数
    axios.interceptors.response.use(function (response) {
      // console.log(response);
    
      //根据响应的状态码,统一设置用户提示
      if(response.data.meta.status===200){
        //成功,提示返回的信息
        Vue.prototype.$message.success(response.data.meta.msg);
      }else if(response.data.meta.status===400){
        //失败,提示返回的信息
        Vue.prototype.$message.error(response.data.meta.msg);
      }
      return response;
    }, function (error) {
      return Promise.reject(error);
    });
    

    本文同步发表在我的个人博客:https://www.lubaojun.com/

    相关文章

      网友评论

        本文标题:Vue 后台管理项目9-axios拦截器

        本文链接:https://www.haomeiwen.com/subject/lguvpqtx.html