WebIndex/src/utils/network.ts
2024-10-01 23:17:57 +08:00

23 lines
744 B
TypeScript

import axios, {AxiosError, AxiosRequestConfig} from 'axios'
export async function request<T = unknown>(config: AxiosRequestConfig<any>): Promise<T> {
const instance = axios.create({
baseURL: "/api",
timeout: 5000,
headers: {},
})
instance.interceptors.request.use(config => {
return config
}, error => error)
// bug fixed on csdn https://blog.csdn.net/qq_45325810/article/details/120704910
instance.interceptors.response.use(resource => {
if (resource.status === 200) return resource
return Promise.reject(new Error(resource.data))
}, (error: AxiosError) => {
return Promise.reject(error.response ? error.response.data : error.code)
})
return instance.request<T>(config).then(res => res.data)
}