作为多部分文件发布到给定的端点

时间:2019-03-17 22:13:25

标签: rest vue.js axios multipartform-data vuex

我已经在Spring Boot中使用JWT保护的端点来工作后端,用于修改当前用户的头像。以下来自Insomnia的带有正确Bearer的请求可以正常工作:

enter image description here

但是此代码

updateAvatar(context, avatar) {
          const fd = new FormData();
          fd.append('file', avatar.data);
          return new Promise((resolve, reject) => {
              axios.post('/saveavatar',
                  {file: fd},
                  {headers: {'Authorization': 'Bearer ' + localStorage.getItem('access_token')}})
                  .then(response => {
                      resolve(response)
                  })
                  .catch(error => {
                      reject(error)
                  })
          })
      },

出现错误

the request was rejected because no multipart boundary was found

我在做什么错?

1 个答案:

答案 0 :(得分:0)

post的第二个参数应该是实际的FormData,在您的情况下为fd。

axios.post('/saveavatar',
              fd,
              {headers: {'Authorization': 'Bearer ' + localStorage.getItem('access_token')}})

它在Insomia中起作用的原因是,它可以处理您的请求并指出需要为边界做广告,axios可以这样做,但需要有效的{{1} }。