import axios from 'axios'; let baseURL: string; if (process.env.NODE_ENV === 'production') { baseURL = ''; } else { baseURL = process.env.NEXT_PUBLIC_DEV_BASE_URL as string; } // 拦截器 axios.interceptors.response.use( (response) => { return response; }, (error) => { return Promise.reject(error); } ); axios.interceptors.request.use( (config) => { config.headers['Accept'] = 'application/json'; config.baseURL = baseURL; // config.timeout = 10000; return config; }, (error) => { return Promise.reject(error); } ); export function requests( url: string, option: { method: 'post' | 'get' | 'put' | 'delete'; params?: { [key: string]: any }; data?: { [key: string]: any }; headers?: { [key: string]: any }; requestType?: 'json' | 'form'; timeout?: number; } ) { if (!option.requestType) { option.requestType = 'json'; } return new Promise((resolve, reject) => { const Content_Type = option.requestType == 'json' ? 'application/json;charset=UTF-8' : 'application/x-www-form-urlencoded;charset=UTF-8'; axios({ timeout: option.timeout, url: baseURL + url, method: option.method, params: option.params, data: option.data, headers: { 'Content-Type': Content_Type, ...option.headers } }) .then((res) => { resolve(res.data); }) .catch((err) => { reject(err); }); }); } export default requests;