可以在axios的interceptor(拦截器)中增加一个属性来确保在重试请求时发送数据对象。具体步骤如下:
axios.interceptors.request.use(config => { config.retryCount = config.retryCount || 0; return config; });
axios.interceptors.response.use(null, (error) => { const config = error.config; if (!config || !config.retry) { return Promise.reject(error); } config.retryCount = config.retryCount || 0; if (config.retryCount >= config.retry) { return Promise.reject(error); } config.retryCount += 1; return new Promise(resolve => { setTimeout(() => resolve(axios(config)), config.retryDelay || 1); }); });
axios.post('/api', {data: 'example'}, { retry: 3, retryDelay: 1000 });
这样就可以确保在重试请求时发送数据对象了。