Axios 响应结构
Axios 响应对象的标准字段,以及浏览器和 Node.js 中的差异。
#concept
#growing
#network
#browser
#http
#javascript
#axios
[!info] related notes
- 所属 MOC: HTTP 与前端网络请求
- 上位概念: Axios
- 前置概念: Axios 请求配置
- 并列概念: Axios 错误模型, Axios 拦截器
Axios 响应结构
一句话定义
Axios 返回的响应对象包含 data、status、statusText、headers、config 和 request 等字段。
核心内容
常见字段
data:经响应转换后的响应体,不保证已通过业务 schema 校验status:HTTP 状态码statusText:状态文本;HTTP/2 等场景可能为空,不能用它判断成功headers:响应头config:本次请求配置request:底层请求对象
常用直觉
const res = await axios.get('/user/123')
console.log(res.data)
console.log(res.status)
环境差异
- 浏览器使用 XHR adapter 时 request 通常对应 XMLHttpRequest;fetch adapter 的对象不同
- Node HTTP adapter 的 request 通常对应 ClientRequest(重定向时可能是最终请求);不要据运行环境硬编码唯一类型
边界与易混淆点
-
实战里最常用的是
response.data -
排障时
status、headers和config更重要 -
下载流或二进制时不要强行只看
data -
响应头名称通常按小写访问;浏览器只暴露 CORS 允许的头,不能读取 HttpOnly Cookie 或被限制的 Set-Cookie。
-
axios.get<User>()的泛型不验证服务端 JSON,需显式运行时解析。响应拦截器若返回 data,调用方拿到的就不再是原始 AxiosResponse。 -
config 可能含 Authorization、Cookie 或请求体,排障输出前先筛选字段。
最短记忆方式
data是业务数据status是 HTTP 结果config和request方便排障