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.