Axios 如何发送 FormData 的 POST 请求?

吾辈测试的时候使用 fetch 调用能够正常执行,但前端使用 Axios 进行对接时却出现了问题。。。

fetch

var fd = new FormData()
fd.append('phone', '12345678910')
fetch(ctx + '/direct/user/sendCode', {
  method: 'post',
  body: fd,
})
  .then(res => res.json())
  .then(json => {
    console.log(json)
    register(json.data)
  });

Axios

axios.post(ctx + '/direct/user/sendCode', {
  phone: '12345678910'
})
  .then(res => console.log(res.data))

但下面的 Axios POST 请求时 headers 中 Content-Type: application/json;charset=UTF-8Fetch 请求时的 headers 中 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9yC0IqgL9oNvL7nLAxios 应该怎么改呢?

附:Java 接口大概是这个样子的

@PostMapping(GlobalConstant.DIRECT_PATH + "/user/sendCode")
public JsonResult sendCode(User user) {
    return null;
}

或者有更好的请求方法呢?╰( ´◔ ω ◔ `)╯

阅读 28.1k
4 个回答
var formData = new FormData(form)
formData.append('phone', '12345678910');

axios({
        method: 'post',
        url: '',
        data: formData
    })
    .then(res => console.log(res.data))

var params = new FormData();
params.append('phone', '12345678910');

axios.post(ctx + '/direct/user/sendCode', params,{
    headers:{
       "Content-Type": "multipart/form-data" 
    }
})
  .then(res => console.log(res.data))
新手上路,请多包涵

我也出现了同样的问题, 老铁有解决方案吗 ?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏