vbenjs / vue-vben-admin

A modern vue admin. It is based on Vue3, vite and TypeScript. It's fast!

Home Page:https://vben.vvbin.cn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请求重试的时候自动删除header

electroluxcode opened this issue · comments

项目中遇到了请求重试的时候headers丢失的情况,。 阅读源码发现有这一句delete config.headers; ,然后 发现是一个pr添加上去的。#2416 。因为这个原因,header在第二次会丢失,而这个pr删掉headers再请求应该是比较特定的场景才会生效的方案,毕竟导致错误的情况很多,在vben作为一个通用型解决方案的条件下这个pr显得不是那么通用

retry(axiosInstance: AxiosInstance, error: AxiosError) {
// @ts-ignore
const { config } = error.response;
const { waitTime, count } = config?.requestOptions?.retryRequest ?? {};
config.__retryCount = config.__retryCount || 0;
if (config.__retryCount >= count) {
return Promise.reject(error);
}
config.__retryCount += 1;
//请求返回后config的header不正确造成重试请求失败,删除返回headers采用默认headers
delete config.headers;
return this.delay(waitTime).then(() => axiosInstance(config));
}

同意你的观点,这个PR的确有些莫名其妙