vue axios post请求传递 FormData 类型参数

参考链接:

axios 上传file文件遇到的坑, no multipart boundary was found

axios 封装使用、拦截特定请求、判断所有请求是否加载完毕

前端请求方法中

      const formData = new FormData()

      formData.append('role', 1)
      formData.append('excelFile', fileObj)

      const config = {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      }

      const { data: res } = await this.$http.post('admin/user/add', formData, config)

需要设置请求头的 Content-Type 为 multipart/form-data (我解决问题查的有很多文章说不需要设置,我试过了没用,不设置就是自动添加默认的类型,而不是我们要的 FormData)

注意:不要序列化 formData ,post请求需要序列化(通常用qs.stringify()),但用post请求传 FormData 不需要

如果序列化了 formData ,后端接收的参数就会为null(这个问题弄了我半天,才发现是序列化的问题)

附赠:判断axios请求数据是否为formData类型还是普通Object

后端接收参数

@PostMapping("/admin/user/add")
@ResponseBody
public Map<String, Object> addUserByExcel(@ModelAttribute UserExcelVO userExcelVO) throws Exception {

}

后端用 java对象 接收参数

注意:跨域问题

猜你喜欢

转载自blog.csdn.net/weixin_41786574/article/details/105015565