axios简单二次封装

85 阅读1分钟
import Vue from "vue";
import axios from "axios";

//创建axios实例
const service = axios.create({
        baseURL: "www.baidu.com", //请求地址
        timeout: 2000 //请求超时时间
    })
    //错误的
const err = (error) => {
        if (error.response) {
            const data = error.response.data
            if (error.response.status === 403) {
                //当服务器拒绝了你的请求的时候
                console.log("服务器拒绝了你的请求")
            }
            if (error.response.status === 401 && !(data.result && data.result.isLogin)) {
                //401表明用户没有访问权限 需要进行身份验证
                console.log("未经授权,授权验证失败")
            }
            return Promise.reject(error)
        }
    }
    //设置请求拦截
service.interceptors.request.use(config => {
        console.log("发起请求", config)
        const token = 'access_token'
        if (token) {
            config.headers['Access-Token'] = token
        }
        return config
    }, err)
    //设置响应拦截
service.interceptors.response.use(response => {
    console.log(response, '收到响应')
        //返回内容
    return response.data
})
export { service as axios }