简体   繁体   中英

How to set MIME type for POST - multipart/form-data in axios?

I need to send POST request with MIME - multipart/form-data

This is my default configuration for POST headers: axios.defaults.headers.post['Content-Type'] = 'multipart/form-data';

I expect that default Content-Type should be multipart/form-dat , but in chrome devtools I see Content-Type: application/json

You can try this:

const data = new FormData();

data.append('action', 'ADD');
data.append('param', 0);
data.append('secondParam', 0);
data.append('file', new Blob(['test payload'], { type: 'text/csv' }));

axios.post('http://httpbin.org/post', data);

This code is using FormData API

Another option is using form-data package:

const axios = require('axios');
const FormData = require('form-data');

const form = new FormData();
// Second argument  can take Buffer or Stream (lazily read during the request) too.
// Third argument is filename if you want to simulate a file upload. Otherwise omit.
form.append('field', 'a,b,c', 'blah.csv');
axios.post('http://example.org/endpoint', form, {
  headers: form.getHeaders(),
}).then(result => {
  // Handle result…
  console.log(result.data);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM