Nb
Study
.com
🔍 请输入搜索关键字

基于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);
  }
);