Files
store_ai_front/src/utils/reqeust.ts
2026-05-09 14:37:56 +08:00

71 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import axios, {AxiosError, AxiosRequestConfig, AxiosResponse} from "axios"
import useUserStore from "@/store/user";
const baseURl = process.env.NEXT_PUBLIC_API_URL as string
const service = axios.create({
baseURL: baseURl,
timeout: 30000
})
//请求拦截器
service.interceptors.request.use((config) => {
//
//当数据为formData自动修改请求头
if ((config.data instanceof FormData)) {
(config as any).headers = {"Content-Type": "multipart/form-data"}
}
let token = useUserStore.getState().token
if (token) {
(config.headers).Authorization = `Bearer ${token}`
}
return config
}, (error: AxiosError) => {
return Promise.reject(error)
})
//响应拦截器
service.interceptors.response.use((config: AxiosResponse) => {
const {code, data} = config.data
if ([1, '200'].includes(code)) {
return data
//当为文件流时
} else if (config.headers['content-types'] == 'application/octet-stream') {
return config.data
} else {
// Message.error(message);
return Promise.reject(config.data)
}
}, error => {
if (error.message == 'Network Error') {
// Toast.error("网络异常")
}
return Promise.reject()
})
function requestPost(url: string, data = {}, config: AxiosRequestConfig = {}) {
return service.post(url, data, config)
}
function requestPatch(url: string, data = {}, config: AxiosRequestConfig = {}) {
return service.patch(url, data, config)
}
function requestGet(url: string, params: any = {}) {
return service.get(url, {params})
}
function requestDelete(url: string, data = {}) {
return service.delete(url, {data: data})
}
let request = {
get: requestGet,
post: requestPost,
delete: requestDelete,
patch: requestPatch,
}
export default request