36 lines
961 B
TypeScript
36 lines
961 B
TypeScript
import API from './requestList'
|
|
import AxiosRequestError from './error'
|
|
import { handleError } from './handleError'
|
|
import { getProcessEnv } from '@/global/env'
|
|
|
|
const $api = new API({
|
|
getServerUrl: () => {
|
|
return `${getProcessEnv('SERVER_URL') || ''}`
|
|
},
|
|
})
|
|
|
|
// 请求的拦截器
|
|
$api.request.interceptors.request.use((config: any) => {
|
|
const headers = config.headers || {}
|
|
// 这个地方可以自定义请求头
|
|
config.headers = {
|
|
...headers,
|
|
language: 'en', // 这个是自定义的请求头,还可以加 token 等
|
|
}
|
|
return config
|
|
})
|
|
|
|
// 响应的拦截器
|
|
$api.request.interceptors.response.use(undefined, async (err: AxiosRequestError) => {
|
|
err = handleError(err) // 调用我们自定义的 错误处理方法
|
|
if (err.isUnAuthorized) {
|
|
// 未授权的情况的处理
|
|
}
|
|
// 还可以自定义其他的情况的处理
|
|
|
|
return Promise.reject(err)
|
|
})
|
|
|
|
// 在 page 页面就可以直接调用这个 $api 请求接口
|
|
export default $api
|