为了账号安全,请及时绑定邮箱和手机立即绑定

如何在axios post请求中传递formData和body参数

如何在axios post请求中传递formData和body参数

鸿蒙传说 2022-06-09 16:36:38
我想在 axios 发布请求中的 body 参数中传递 formdata 和数据,我尝试了一些方法,但它不起作用。//代码const form = new FormData();    form.append("file", this.state.selectedFile);    const data={       token:localStorage.getItem('token'),    }    axios.post('http://localhost:3000/api/upload',form, {            onUploadProgress: ProgressEvent => {            this.setState({                loaded: (ProgressEvent.loaded / ProgressEvent.total*100),            })        },     })    .then(response=>{        console.log(response)    }).then(res => {         toast.success('upload success')    })    .catch(err => {         toast.error('upload fail')    })
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您需要为相应的内容类型提供有效的标头


axios({

    method: 'post',

    url: 'http://localhost:3000/api/upload',

    data: form,

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

    })


查看完整回答
反对 回复 2022-06-09
?
呼如林

TA贡献1798条经验 获得超3个赞

您试图在 FormData 中传递一个文件,这是不可能的,您需要使用 FormUrlEncoded。为此,您还需要安装一个名为 query-string 的 npm 包,然后您的数据属性将如下所示:


import qs from 'query-string';

...

axios.post(..., data:qs.stringify({

  file: this.state.selectedFile

})


查看完整回答
反对 回复 2022-06-09
  • 2 回答
  • 0 关注
  • 1921 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号