multipart|form-data前端上传文件报错(服务器报500) 找不到Boundary(边界)
后端自测上传文件成功,但是前端总是报500
·
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,测试)
更多推荐
已为社区贡献4条内容
所有评论(0)