出错描述

  前端封装好文件数据,后端写好接口,一模一样的参数名,但是会报错:Required request part '*’ is not present

  前端代码:

【elementUI + Spring报错解决方案】Required request part ‘*****‘ is not present_前端


  后端代码:

【elementUI + Spring报错解决方案】Required request part ‘*****‘ is not present_前端_02

解决办法

  在前端封装的时候,用file.raw,直接用​file​并不能被后端解析到。

  修改后的前端代码如下,修改的地方圈起来了。

【elementUI + Spring报错解决方案】Required request part ‘*****‘ is not present_前端_03

问题原理分析

  由于前端封装的数据类型出错,并不是文件类型,所以后端无法解析,但是它报的错是键名不存在,即Required request part ‘*****’ is not present,这就很有迷惑性。

  分别输出​​x​​​、​​x.raw​​来看一下。

this.$refs.addressImgList.uploadFiles.forEach((x) => {
console.log(x,x.raw)
formData.append('addressImgList', x.raw);
});

【elementUI + Spring报错解决方案】Required request part ‘*****‘ is not present_not present_04


  可以看到,前者只是一个json结构的数据,后者才是File类型。