axios post request to send form data axios post request to send form data reactjs reactjs

axios post request to send form data


You can post axios data by using FormData() like:

var bodyFormData = new FormData();

And then add the fields to the form you want to send:

bodyFormData.append('userName', 'Fred');

If you are uploading images, you may want to use .append

bodyFormData.append('image', imageFile); 

And then you can use axios post method (You can amend it accordingly)

axios({  method: "post",  url: "myurl",  data: bodyFormData,  headers: { "Content-Type": "multipart/form-data" },})  .then(function (response) {    //handle success    console.log(response);  })  .catch(function (response) {    //handle error    console.log(response);  });

Related GitHub issue:

Can't get a .post with 'Content-Type': 'multipart/form-data' to work @ axios/axios


In my case I had to add the boundary to the header like the following:

const form = new FormData();form.append(item.name, fs.createReadStream(pathToFile));const response = await axios({    method: 'post',    url: 'http://www.yourserver.com/upload',    data: form,    headers: {        'Content-Type': `multipart/form-data; boundary=${form._boundary}`,    },});

This solution is also useful if you're working with React Native.


Check out querystring.

You can use it as follows:

var querystring = require('querystring');axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));