封装axios

复制代码
import axios from 'axios';

// axios.defaults.timeout = 5000;   //响应时间
// axios.defaults.withCredentials=true;//让请求头携带参数cookie
// axios.defaults.baseURL = '';   //配置接口地址  
// axios.defaults.headers.authKey = Lockr.get('authKey');    //接口请求头authKey   按需修改
// axios.defaults.headers.sessionId =Lockr.get('sessionId');   //接口请求头sessionId  按需修改
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';  //配置请求头
import Qs from 'qs'


const service = axios.create({
    withCredentials: true,
    crossDomain: true,
    // baseURL,
    timeout: 60000
})

//HTTPrequest拦截
service.interceptors.request.use(config => {
    config.headers['hztToken'] = localStorage.getItem('hztToken')
    if (config.method === 'post') {
        if (config.isFormData) {
            //表单提交
            config.headers['Content-Type  '] = 'application/x-www-form-urlencoded;charset-utf-8'
            config.data = Qs.stringify(config.data)
        } else if (config.isUploadFile) {
            //文件上传
            config.headers['Content-Type'] = 'multipart/form-data'
        }
    }
    return config
}, error => {
    return Promise.reject(error)
});

//HTTPresponse拦截
service.interceptors.response.use(response => {
    switch (response.status) {
        case 200:
            return Promise.resolve(response.data)
            break
        case 401:
            toastText = 'token已过期!'
            break
        default:
            uni.hideLoading();
            uni.showToast({
                title: '加载失败',
                duration: 1000,
                icon: 'none'
            });
        return Promise.reject(new Error(response.data || 'Error'))

    }
}, error => {
    uni.hideLoading();
    let toastText = ''
    if(error.response.data && error.response.data.code){
        switch (error.response.data.code) {
            case 4001:
                toastText = 'token不能为空,无访问权限!'
                break
            case 401:
                toastText = 'token已过期!'
                break
            default:
                toastText = '加载失败!'
        }
    }
    
    uni.showToast({
        title: toastText,
        duration: 2000,
        icon: 'none'
    });
    return Promise.reject(new Error(error));

})



export default service;
复制代码

 

posted @   Freeandeasyz  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示