Axios 数据序列化
Axios 如何处理 JSON、x-www-form-urlencoded 和 multipart/form-data。
#type / concept
#status / growing
#tech / network
#platform / browser
#resource / http
#resource / javascript
#package / axios
[!info] related notes
- 所属 MOC: HTTP 与前端网络请求
- 上位概念: Axios
- 前置概念: Axios 请求配置
- 并列概念: Axios 响应结构, Axios 错误模型
Axios 数据序列化
一句话定义
Axios 会把普通对象默认按 JSON 发送,但也支持 URL 编码和 multipart 表单。
核心内容
JSON
await axios.post('/user', { name: 'Tom' })
Axios 默认会把普通对象按 JSON 处理;更细的转换可以交给 transformRequest / transformResponse。
application/x-www-form-urlencoded
适合传统表单或后端明确要求 URL 编码的接口。
multipart/form-data
适合文件上传、混合字段提交、FileList 等场景。
常见直觉
params走 URLdata走请求体- 表单和文件上传要注意
Content-Type
边界与易混淆点
- JSON 不等于表单编码
- 文件上传不只是把对象塞进
data - Node 和浏览器对流式/文件处理细节不同
最短记忆方式
- 默认 JSON
- 表单可 URL 编码
- 文件上传用 multipart