// 导入axios

import axios from 'axios'

//设置请求的基础路径

// axios.defaults.baseURL = process.env.VUE_APP_BASE_API;

//对axios 做二次封住(利用了axios的请求和响应拦截器,拦截每次请求,对每次请求做一些必要的处理)

// 设置请求拦截器(每次使用axios发请求,请求即将从浏览器发出时,请求会被请求拦截器拦截下来)

axios.interceptors.request.use(function (config) {

    // 显示loading

    //给config设置请求头

    // 每次发请求都会 都会自动执行这个代码,添加请求头

    config.headers['Authorization'] = 'Bearer '+localStorage.getItem('token')

    return config;

  }, function (error) {

    return Promise.reject(error);

  });

  // 设置响应拦截器 (每次使用axios发请求,请求即将从浏览器发出时,响应会被请求拦截器拦截下来)

axios.interceptors.response.use(function (response) {

    /* if(response.data.token && response.data.code == 200){

        localStorage.getItem('token',res.data.token)

    }

    也可以在这里来保存token */  

    // 隐藏loading

    return response;

  }, function (error) {

    // 隐藏loading

    //  统一处理错误码

    if(error.response.status == 404){

        console.log("访问路径有错");

    }else if(error.response.status == 401){

        alert("登录过期/身份验证失败");

        // 删除本地存储中的token

        localStorage.removeItem('token');

    }else if(error.response.status == 500){

        alert("服务器错误");

    }

    return Promise.reject(error);

  });

//  导出axios

export default axios ;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐