Home > Mobile >  axios converts x-www-form-urlencoded to multipart/form-data
axios converts x-www-form-urlencoded to multipart/form-data

Time:03-11

I am sending a post request with axios. However, when I check the browser console, I see that the request header is actually content-type: multipart/form-data. How can I enforce application/x-www-form-urlencoded? Or does it even matter?

let data = new FormData();
data.append('grant_type', 'authorization_code');
// ... removed for conciseness 
return axios.post(`${AUTH_URL}/token`, 
    data,
    {
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
}

CodePudding user response:

FormData objects always serialise to multipart/form-data. They have to because they support file uploading and application/x-www-form-urlencoded and application/json do not.

If you want to send application/x-www-form-urlencoded data you should pass a URLSearchParams object instead.

This is described in the axios documentation.

In either case, you shouldn't specify the Content-Type in the headers since the underlying browser APIs will infer it correctly from the object type passed as the body data.

  • Related