axios 将 x-www-form-urlencoded 转换为 multipart/form-data
axios converts x-www-form-urlencoded to multipart/form-data
我正在用 axios 发送一个 post 请求。但是,当我检查浏览器控制台时,我看到请求 header 实际上是 content-type: multipart/form-data
。我如何执行 application/x-www-form-urlencoded
?或者它甚至重要吗?
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'
}
}
FormData
个对象 总是 序列化为 multipart/form-data
。他们必须这样做,因为他们支持文件上传,而 application/x-www-form-urlencoded
和 application/json
不支持。
如果您想发送 application/x-www-form-urlencoded
数据,您应该传递一个 URLSearchParams
对象。
这在 the axios documentation 中有描述。
在任何一种情况下,您都不应该在 headers
中指定 Content-Type
,因为底层浏览器 API 将从作为正文数据传递的对象类型正确推断它。
我正在用 axios 发送一个 post 请求。但是,当我检查浏览器控制台时,我看到请求 header 实际上是 content-type: multipart/form-data
。我如何执行 application/x-www-form-urlencoded
?或者它甚至重要吗?
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'
}
}
FormData
个对象 总是 序列化为 multipart/form-data
。他们必须这样做,因为他们支持文件上传,而 application/x-www-form-urlencoded
和 application/json
不支持。
如果您想发送 application/x-www-form-urlencoded
数据,您应该传递一个 URLSearchParams
对象。
这在 the axios documentation 中有描述。
在任何一种情况下,您都不应该在 headers
中指定 Content-Type
,因为底层浏览器 API 将从作为正文数据传递的对象类型正确推断它。