axios的token不用频繁取配置

1.api.js文件
import axios from 'axios'
import router from '../router'
拦截器:
const service = axios.create({
   //baseURL: '/api', // url = base url + request url
   //试试这里直接配置url
   baseURL: 'https://api.example.com/api', 
    // withCredentials: true, // send cookies when cross-domain requests
    timeout: 20000, // request timeout
    headers: {
        'X-Requested-With': 'XMLHttpRequest',
        // 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    }, // request timeout
})
service.interceptors.request.use(function (config) { //请求拦截器
    if (localStorage.getItem('Authortokenasf')) {
        config.headers['x-token'] = localStorage.getItem('Authortokenasf');
    }
    return config;
}, function (error) {
    return Promise.reject(error); //返回被拒绝的原因
});
service.interceptors.response.use(function (response) { //响应拦截器
    console.log(response, "响应数据");
    const data = response.data
    /**
     * code:0 表示成功;400表示出错
     */
    if (data.status == 401 || data.msg == '请先登录') {
        Notify({
            type: 'danger',
            message: "登录信息已过期,请重新登录"
        })
        router.replace({
            path: '/' // 到登录页重新获取token
        })
        localStorage.removeItem('Authortokenasf')
        localStorage.removeItem('usertype')
        sessionStorage.removeItem('fhcompanyId')
        sessionStorage.removeItem('havecompany')
    } else if (data.code == 0 || data.code == 1) {
        // console.log('data',data)
        return response
        // return Promise.resolve(data)
    } else {
        const err = {}
        err.code = response.data.code
        err.msg = response.data.msg
        if (data.msg != "运行时异常:请完善基本信息") {
            Notify({
                type: 'danger',
                message: err.msg
            });
        }
        return response
    }
}, function (err) {
    // 返回状态码不为200时候的错误处理
    Notify({
        type: 'danger',
        message: err.message
    })
    Toast.clear()
    console.log(err.message)
    if (err && err.response) {
        switch (err.response.status) {
            case 400:
                err.message = '请求错误'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 401:
                err.message = '未授权,请登录'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 403:
                err.message = '拒绝访问'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 404:
                err.message = `请求地址出错: ${err.response.config.url}`
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 408:
                err.message = '请求超时'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 500:
                err.message = '服务器内部错误'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 501:
                err.message = '服务未实现'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 502:
                err.message = '操作失败,请重试'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 503:
                err.message = '服务不可用'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 504:
                err.message = '网关超时'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            case 505:
                err.message = 'HTTP版本不受支持'
                Notify({
                    type: 'danger',
                    message: err.message
                });
                break
            default:
        }
    }
    return Promise.reject(err);
});
export default service


2.调接口一直带有token使用
export function getcompany(params) {
    return axiosInterceptors({
        url: '/gov/company',
        method: 'get',
        params
    })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值