38 lines
829 B
TypeScript
38 lines
829 B
TypeScript
import axios from 'axios';
|
|
|
|
const request = axios.create({
|
|
baseURL: import.meta.env.PUBLIC_BASE_URL,
|
|
timeout: 10000,
|
|
});
|
|
|
|
// 请求拦截器
|
|
request.interceptors.request.use(
|
|
(config) => {
|
|
// TODO: 添加 token 等请求头
|
|
return config;
|
|
},
|
|
(error) => {
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
// 响应拦截器
|
|
request.interceptors.response.use(
|
|
(response) => {
|
|
// TODO: 统一处理业务错误码
|
|
return response;
|
|
},
|
|
(error) => {
|
|
// TODO: 统一处理网络错误
|
|
return Promise.reject(error);
|
|
},
|
|
);
|
|
|
|
export const get = <T>(url: string, params?: object) =>
|
|
request.get<API.Response<T>>(url, { params }).then((res) => res.data);
|
|
|
|
export const post = <T>(url: string, data?: object) =>
|
|
request.post<API.Response<T>>(url, data).then((res) => res.data);
|
|
|
|
export default request;
|