我想在 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' }
})

呼如林
TA贡献1798条经验 获得超3个赞
您试图在 FormData 中传递一个文件,这是不可能的,您需要使用 FormUrlEncoded。为此,您还需要安装一个名为 query-string 的 npm 包,然后您的数据属性将如下所示:
import qs from 'query-string';
...
axios.post(..., data:qs.stringify({
file: this.state.selectedFile
})
添加回答
举报
0/150
提交
取消