request.tsx 2.13 KB
import axios from 'axios';
import {currentCorpCode, _baseUrl} from "@/utils/common"

// 创建axios实例
const service = axios.create({
    baseURL: _baseUrl, // 你可以通过.env文件设置API的基础URL
    timeout: 5000 // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么,例如设置请求头
        // if (store.getters.token) {
        //   config.headers['X-Token'] = getToken();
        // }
        console.log('config---2', config)
        return config;
    },
    error => {
        // 对请求错误做些什么
        console.error('请求拦截器错误:', error); // for debug
        Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        /**
         * 可以在这里对响应数据做点什么
         */
        const res = response.data;
        if (res?.success || res?.code === 200) {
            return res.data;
        } else {
            // 如果后端有统一的错误码处理,可以在这里统一处理
            console.error('接口错误:', res.message);
            // 你可以抛出一个错误,或者返回一个错误对象
            // throw new Error(res.message || 'Error');
            return Promise.reject(new Error(res.message || 'Error'));
        }
    },
    error => {
        console.error('响应拦截器错误:', error);
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);

// 封装get请求
export function get(url: string, params = {}, customHeaders?: any, notCorpCode?: boolean) {

    const _params = notCorpCode ? {
        ...params,
    } : {
        corpCode: currentCorpCode(),
        ...params,
    }
    return service.get(url, {params: _params, headers: customHeaders})

}

// 封装post请求
export function post(url: string, params = {}, data = {}, customHeaders?: any, notCorpCode?: boolean) {
    const _params = notCorpCode ? {
        ...params,
    } : {
        corpCode: currentCorpCode(),
        ...params,
    }
    return service.post(url, data, {params: _params, headers: customHeaders})
}