const formData = new FormData();
  formData.append('file', file);
  formData.append('mailSys', mailSys);

后端自测上传文件成功,但是前端总是报500
如果你设置了全局的content-type,会发现上传接口设置multipart/form-data是不起作用的,因为没有Boundary,所以上传必定失败,服务器500。
然后尝试手动添加Boundary,这次错误变400了
根本原因是multipart/form-data不需要指定,浏览器会根据文件类型自动添加content-type并加上Boundary
但是全局又指定了content-type为json
第一种方式:
尝试在上传接口

 headers: { 'Content-Type': false },

这样浏览器会自己根据参数FormData去添加头部和边界
但是这种方式在有些请求库中不生效,据我所知jquery,axios可以,umi不行,原因是umi-request依赖的一个插件库导致的。
第二种方式:
再创建一个请求实例不指定请求头content-type,上传文件用此实例

有想换工作的同学可以找我内推哦不低于15k(前端,java,测试)

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐