背景:线上告警,后端接口500 ,显示参数少了image
找到问题:
-
上传一张图片。
-
将网络限速,触发首次请求超时。
-
查看自动重试请求。
-
修复前:重试请求缺少
image,后端报错。
模拟开始


成功复现

修复的代码块
axios.js
javascript
// 文件上传
console.log('file', config);
if (config.file) {
config.data = getFormDataByJson(config.data); // 对象转 Formdata
const isFormData =
typeof FormData !== 'undefined' && config.data instanceof FormData;
if (!isFormData) config.data = getFormDataByJson(config.data); // 对象转 Formdata
config.headers['Content-Type'] = 'multipart/form-data;charset=UTF-8';
}
// 配置 CancelToken
deposit.js
javascript
export const postRemitCertUpload = data =>
axios.post(`/money/deposit/remittance-certificates/upload`, data, {
file: true,
retry: 0, // 上传超时结果不确定,避免自动重试导致重复保存或重复转换 FormData
magic: 'web-api',
});