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

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

    })


鸿蒙传说
浏览 1922回答 2
2回答

一只名叫tom的猫

您需要为相应的内容类型提供有效的标头axios({    method: 'post',    url: 'http://localhost:3000/api/upload',    data: form,    headers: {'Content-Type': 'multipart/form-data' }    })

呼如林

您试图在 FormData 中传递一个文件,这是不可能的,您需要使用 FormUrlEncoded。为此,您还需要安装一个名为 query-string 的 npm 包,然后您的数据属性将如下所示:import qs from 'query-string';...axios.post(..., data:qs.stringify({  file: this.state.selectedFile})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript