• axios二次封装


    import axios from 'axios';
    import qs from 'qs';
    import { Message} from '@alifd/next';
    
    //默认地址
    const request = axios.create({
        timeout: 100000,
        baseURL:'http://192.168.1.193:8083/quick-platform/' //
    });
    
    const parse = (data) => {
        const result = {};
        for (const key in data) {
            if (typeof data[key] === 'string') {
                result[key] = data[key]
            } else {
                result[key] = JSON.stringify(data[key])
            }
        }
        return qs.stringify(result);
    }
    
    const networkErrorMap = {
        error: 'Network Error',
        400: '请求错误',
        401: '未授权,请登录',
        403: '拒绝访问',
        404: '请求地址不存在',
        408: '请求超时',
        500: '服务器内部错误',
        501: '服务未实现',
        502: '网关错误',
        503: '服务不可用',
        504: '网关超时',
        505: 'HTTP版本不受支持'
    }
    
    // 添加拦截器
    request.interceptors.request.use((config) => {
        const token = localStorage.getItem("token")
        console.log(token,'qqqqqqqqqqqqqq')
        if (token) {
            config.headers['X-Access-Token'] = token
        }
        return config
    }, error => {
        return Promise.reject(error);
    })
    
    //响应器
    request.interceptors.response.use(function (response) {
        const { code, success, result, message } = response.data;
        if (success) {
            return response.data;
        } else {
            return Promise.reject(message);
        }
    }, function (err) {
        if (err && err.response && err.response.status) {
            err.message = networkErrorMap[err.response.status] || err.message
        }
        return Promise.reject(err)
    });
    
    
    function base(type,returnRes="") {
        return function (url, data, config) {
            const { showError = true, headers = {}, json = true} = config || { showError: true, headers: {}, json: true };
            const params = {
                url,
                method: type,
                headers
            };
            if (['post', 'put'].includes(type)) {
                if (!json) {
                    params.headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
                }
                params.data = json ? data : parse(data);
            } else {
                params.params = data
            }
            if(returnRes == "postfile"){
                params.headers['Content-Type']="multipart/form-data";
            }
            return request(params)
                .catch((e) => {
                    showError && Message.error(e);
                    return Promise.reject(e)
                })
        }
    }
    export const get = base('get');
    export const deletes = base('delete');
    export const post = base('post');
    export const put = base('put');
    export const postfile = base('post','postfile');

    //使用

    import { get, post, put } from './http';
    
    //测试
    export function GetcustomPageList(data) {
        return get('/customPage/list', data);
    }
  • 相关阅读:
    多维数组的索引与切片
    多维数组
    开学第一课Java考试
    大一第九周学习体会
    大一第八周学习体会
    大一第七周学习体会
    大一第六周学习体会
    大一第五周学习体会
    《大道至简》读后感
    大一暑假第四周学习体会
  • 原文地址:https://www.cnblogs.com/wangshengli520/p/16254935.html
Copyright © 2020-2023  润新知