封装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 @ 2023-02-08 21:37  Freeandeasyz  阅读(25)  评论(0)    收藏  举报