基于axios封装之后的上传文件,传参为空(文件上传)

205 阅读1分钟

最近做项目时,发现了一个问题。封装axios的请求和返回拦截之后,上传文件的上传参数莫名其妙为空对象了。本人是菜鸟只能用不进行封装的axios进行上传文件

封装的

export function fileUpload(url, params) {
  const fileObject = params.file;
  const formData = new FormData();
  formData.append('file', fileObject);
  console.log(formData.get("file"))
  return request({
    url: url,
    method: 'post',
     headers: {
       'Content-Type': 'multipart/form-data',
       // transformRequest: [data=> data]
       },
    data: formData
  })
}

这里的request就是从封装axios的文件中引用的;
这种情况下提交文件莫名其妙变成空了;
百度说transformRequest声明下data就好了,但是不知道我这里为啥不行

原生的

import axios from 'axios'

export function fileUpload(url, params) {
  const fileObject = params.file;
  const formData = new FormData();
  formData.append('file', fileObject);
   return axios({
    url: process.env.VUE_APP_BASE_API + url,
    method: "post",
    headers: {
      "Content-Type": "multipart/form-data",
    },
    data: formData,
  });
}

原生的就可以用了!!!