基于typescript配置 axios的 interceptors拦截器
nbstudy 发表于 2024-07-09 10:18:26
直接看示例代码吧
typescript
const axiosInstance = axios.create({
baseURL: import.meta.env.DEV ? GlobalConsts.DevBaseUrl : GlobalConsts.ProdBaseUrl,
withCredentials: true,
timeout: 150000,
});
// request interceptor
axiosInstance.interceptors.request.use(
(config: InternalAxiosRequestConfig) => {
// 可以进行请求拦截处理,如添加请求头,token 等
// config.headers?[GlobalConsts.TokenKey] = CommonUtils.getLocalStore(GlobalConsts.TokenKey)
if(CommonUtils.getLocalStore(GlobalConsts.LocalTokenKey)) {
config.headers.set(GlobalConsts.HeaderTokenKey, CommonUtils.getLocalStore(GlobalConsts.LocalTokenKey))
config.headers.set(GlobalConsts.HeaderStemMarkKey, CommonUtils.getLocalStore(GlobalConsts.LocalStemMarkKey))
// 早期版本配置
// config.headers = {
// [GlobalConsts.HeaderTokenKey]: CommonUtils.getLocalStore(GlobalConsts.LocalTokenKey)!,
// [GlobalConsts.UsernameKeyToBackend]: CommonUtils.getLocalStore(GlobalConsts.CurrentLoginUserName)!
// }
}
return config;
},
(error) => {
console.log(error);
return Promise.reject(error);
}
);