Axios v1.x 版本演进全解析:基于 CHANGELOG 读懂安全加固、功能迭代与适配器演进(v1.0.0 → v1.19.0)
2026/9/7 14:48:33 网站建设 项目流程

Axios v1.x 版本演进全解析:基于 CHANGELOG 读懂安全加固、功能迭代与适配器演进(v1.0.0 → v1.19.0)

【免费下载链接】axiosPromise based HTTP client for the browser and node.js项目地址: https://gitcode.com/GitHub_Trending/ax/axios

本文以仓库内的 CHANGELOG.md 为骨架,系统梳理 Axios(面向浏览器与 Node.js 的 Promise 风格 HTTP 客户端)从 v1.0.0(2022-10-04)到 v1.19.0(2026-07-22)的完整版本记录,重点解读其中的安全修复脉络、新功能演进、适配器与多运行时支持,以及升级前必须关注的行为变更。每一条关键改动都会对照lib/下的实际源码进行交叉印证,帮助你在选型、升级或排查回归问题时,快速定位版本间的安全边界差异与行为变化。

一、版本脉络总览:从 v1.0.0 到 v1.19.0

CHANGELOG 当前记录的最新版本为 v1.19.0。这一版本与仓库 package.json 中声明的"version": "1.19.0"保持一致,也说明本仓库快照对应 1.19.0 发布后的代码状态。整条 v1.x 时间线可以划分为三个阶段:

  • 初始发布期(1.0.0 ~ 1.3.x,2022-10 ~ 2023-04):1.x 大版本落地,补齐toFormDataformToJSON、自定义paramsSerializer、Node.js data URL 支持等基础能力。
  • 安全与功能密集迭代期(1.4.0 ~ 1.13.x,2023-04 ~ 2026-01):引入 fetch 适配器、HTTP/2、allowAbsoluteUrls等里程碑功能,同时密集处理 CSRF、ReDoS、SSRF、原型污染等安全漏洞。
  • 安全加固与多运行时支持期(1.14.0 ~ 1.19.0,2026-02 ~ 2026-07):全面转向供应链加固、CRLF/原型污染纵深防御、allowedSocketPathsSSRF 白名单,并正式支持 Deno、Bun 运行时。

下表汇总了各版本的核心主题(完整逐条记录见 CHANGELOG.md):

版本日期核心主题
1.0.02022-10-041.x 大版本:toFormDataformToJSONparamsSerializer、data URL、AxiosError增强
1.1.0 ~ 1.1.32022-10CommonJS/UMD 导出修复、clear()拦截器、自定义paramsSerializer
1.2.0 ~ 1.2.62022-11 ~ 2023-01模块导出重构、AxiosHeaders改进、AxiosError.toJSON防循环引用
1.3.0 ~ 1.3.62023-01 ~ 2023-04规范符合的 FormData/Blob 支持、自定义lookup函数、AxiosHeaderValue导出
1.4.02023-04-27自定义lookup函数(DNS)、mergeConfig性能优化
1.5.0 ~ 1.5.12023-08 ~ 2023-09导出getAdapter、无unsafe前缀导出适配器
1.6.0 ~ 1.6.82023-10 ~ 2024-03CVE-2023-45857(CSRF/XSRF)withXSRFToken、ReDoS 修复
1.7.0-beta.0 ~ 1.7.02024-04 ~ 2024-05fetch 适配器落地
1.7.1 ~ 1.7.92024-05 ~ 2024-12CVE-2024-39338(SSRF)、fetch/XHR 细节修复
1.8.0 ~ 1.8.42025-02 ~ 2025-03allowAbsoluteUrls配置(BREAKING)
1.9.02025-04-24AxiosHeaders.getSetCookie()
1.10.0 ~ 1.12.02025-06 ~ 2025-09fetchenv配置变量、JSON.parsereviver、底层错误经cause暴露
1.13.0 ~ 1.13.62025-10 ~ 2026-02HTTP/2 支持useLegacyInterceptorOrderisAbsoluteURL校验、React Native Blob
1.14.02026-03-27测试套件迁移 Vitest、formidable升级 v3、CommonJS 兼容修复
1.15.02026-04-07CRLF 头注入防护shouldBypassProxy(SSRF)、Deno/Bun 官方支持、CI 供应链加固
1.15.12026-04-19头注入、withXSRFToken真值绕过、maxBodyLength(零重定向)修复
1.15.22026-04-21allowedSocketPathsSSRF 白名单、keep-alive 连接池内存泄漏修复
1.16.0 ~ 1.16.12026-05QUERY 方法ECONNREFUSED常量、fetch 适配器强制maxBodyLength/maxContentLength
1.17.02026-06-01Node HTTP zstd 解压transitional.advertiseZstdAcceptEncoding
1.18.02026-06-13transitional.validateStatusUndefinedResolves、跨域重定向敏感头剥离、ERR_INVALID_URL
1.19.02026-07-22form-data 版本下限提升AxiosHeaders.parseParameters()、Cloudflare 520 状态码、NO_PROXY 匹配加固

说明:版本号遵循语义化版本(SemVer)原则,1.x主版本内只引入向后兼容的功能与修复;破坏性变更(如allowAbsoluteUrls)会在 CHANGELOG 中单独以BREAKING CHANGES标注。关于版本策略的完整约定可参阅仓库文档 semver.md,跨版本迁移注意事项见 MIGRATION_GUIDE.md。

二、安全修复演进线(重点)

安全修复是 CHANGELOG 中最密集、也最值得逐条阅读的线索。v1.x 的安全加固呈现出明显的“纵深防御”趋势:从最初修复单点漏洞(CSRF、ReDoS),逐步演进到对配置读取、请求体/响应体限制、头注入、SSRF、原型污染的全面加固。以下按时间线梳理,并对照源码印证。

2.1 早期漏洞:CSRF、ReDoS 与原型污染

  • v1.6.0(CVE-2023-45857):修复了一个 CSRF 漏洞,其本质是withXSRFToken/凭证相关路径在非标准环境下可能泄露 XSRF token。该修复在 CHANGELOG 中以 “⚠️ Critical vulnerability fix” 标注。
  • v1.6.3(ReDoS,#6132):修复了正则表达式拒绝服务漏洞,与后续版本中对parseProtocol、参数解析等正则的收紧一脉相承。
  • v1.6.4(原型污染,#6167):修复formToJSON原型污染漏洞。当前源码 lib/helpers/formDataToJSON.js 第 81 行保留了显式防护:在buildPath中遇到name === '__proto__'时直接return true跳过,确保污染键无法通过反序列化写入对象原型。
// lib/helpers/formDataToJSON.js(节选) function buildPath(path, value, target, index) { // ... let name = path[index++]; if (name === '__proto__') return true; // 第 81 行:原型污染防护 // ... }

2.2 SSRF 与协议校验

  • v1.7.4(CVE-2024-39338,#6539):拒绝协议相对 URL(//host/...),修复 SSRF。这一约束直接体现在当前的协议解析逻辑中。lib/helpers/parseProtocol.js 的正则要求协议分隔符必须带冒号:
// lib/helpers/parseProtocol.js export default function parseProtocol(url) { const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); return (match && match[1]) || ''; }
  • v1.18.0(#11000):进一步收紧——对于省略//的畸形http:/https:URL,直接抛出ERR_INVALID_URL。这一逻辑位于 lib/core/buildFullPath.js,第 8 行的malformedHttpProtocol = /^https?:(?!\/\/)/i配合第 45–56 行的assertValidHttpProtocolURL完成校验。

2.3 头注入与 CRLF 防御

  • v1.15.0(CRLF 头注入,#10660):拒绝任何包含\r\n的头值,阻断可用于窃取云元数据(IMDS)的 CRLF 注入链。行为变更:含 CR/LF 的头现在会抛出"Invalid character in header content"
  • v1.15.1(#10749、#10758):收紧请求头构造的校验与清洗,并在 multipart 头值中正确剥离 CR/LF,防止通过字段名/文件名注入。
  • v1.15.1(withXSRFToken真值绕过,#10762):对任何“真值但非布尔”的配置短路,避免歧义配置导致 XSRF token 跨源静默泄露。

2.4 请求体/响应体限制与maxBodyLength

  • v1.15.1(#10753、#10754):即使在maxRedirects: 0时也强制maxBodyLength,并对流式响应应用maxContentLength,封堵超大请求体绕过路径。
  • v1.16.0(#10795):fetch 适配器开始强制执行maxBodyLengthmaxContentLength——在 1.16.0 之前这两个限制在 fetch 适配器上被静默忽略。这是一项可观察行为变更,依赖其作为 DoS 防护的旧代码需要重新评估(详见第五节)。

2.5 SSRF 白名单:shouldBypassProxyallowedSocketPaths

  • v1.15.0(#10661):引入shouldBypassProxy辅助函数,在评估no_proxy/NO_PROXY规则前规范化主机名(去除尾部点、处理括号 IPv6),堵住回环/内网主机被意外代理的缺口。
  • v1.15.2(#10777):新增allowedSocketPaths配置选项,用于限制 Node HTTP 适配器允许的 Unix domain socket 路径,从而缓解通过socketPath的 SSRF;不匹配时返回AxiosErrorERR_BAD_OPTION_VALUE。该白名单校验位于 lib/adapters/http.js 第 957–961 行附近。
// lib/adapters/http.js(节选) const allowedSocketPaths = own('allowedSocketPaths'); if (allowedSocketPaths != null) { const allowed = Array.isArray(allowedSocketPaths) ? allowedSocketPaths : [allowedSocketPaths]; // ... 对 socketPath 做白名单校验,不匹配则抛 ERR_BAD_OPTION_VALUE }
  • v1.19.0(NO_PROXY 匹配加固,#11029、#11053):在 NO_PROXY 匹配时规范化 IPv4 的简写/八进制/十六进制形式,并支持逗号或空格分隔列表中的*条目。这一复杂度直接体现在 lib/helpers/shouldBypassProxy.js:normalizeIPAddress(第 61 行起)负责把127.11.2.3、八进制、0x十六进制等形态还原为点分十进制;shouldBypassProxy(第 438 行起)在第 453–455 行处理noProxy === '*'的整体绕过,并对每个条目做 CIDR、后缀、端口与回环判定。

2.6 原型污染纵深防御

  • v1.13.5(#7369):加固mergeConfig,忽略__proto__constructorprototype键,防止合并用户配置时的原型污染拒绝服务。
  • v1.15.2(#10779):Node HTTP 适配器及resolveConfig/mergeConfig/validator 路径只读取自有属性并使用 null 原型配置对象,防止被污染的authbaseURLsocketPathbeforeRedirectinsecureHTTPParser影响请求。
  • v1.16.1(#7413)formDataToJSON通过只遍历自有属性,防御已被污染的Object.prototype
  • v1.17.0(#10901、#10922):用自有属性检查保护socketPathparamsparamsSerializer的读取,阻断继承原型值影响请求行为(含 SSRF 敏感路径)。

2.7 供应链与发布安全

  • v1.15.2(#10776):新增.npmrcignore-scripts=true)、lockfile lint CI、可复现构建 diff、范围化 CODEOWNERS,扩展 SECURITY.md 与 THREATMODEL.md(含npm audit signatures溯源验证、60 天解决策略与事件响应手册)。
  • v1.15.0(#10618 等):CI 安全加固——引入 zizmor Actions 安全扫描、npm 发布切换 OIDC Trusted Publishing(移除长期NODE_AUTH_TOKEN)、所有 action 引用固定到完整 commit SHA、工作流权限最小化、发布步骤置于独立npm-publish环境、禁止 fork 运行 sponsor 工作流。
  • v1.17.0(#10926):发布工作流切换 npm staged publishing,更安全、可审计、带 provenance。
  • v1.19.0(#11083):简化 v1 发布,改用 Node.js 26 自带的 npm。

2.8 最新依赖漏洞:form-data CRLF 注入(v1.19.0)

  • v1.19.0(#11028):将form-data依赖版本下限提升到^4.0.6,避免新安装解析到受 CRLF 注入漏洞影响的版本。这一点在当前 package.json 的依赖中可直接验证:"form-data": "^4.0.6",与 CHANGELOG 描述一致。

三、新功能与能力演进线

除安全外,CHANGELOG 记录了若干改变使用方式的里程碑功能。以下按主题梳理并对照源码。

3.1 fetch 适配器(v1.7.0,里程碑)

  • v1.7.0-beta.0(2024-04-28)→ v1.7.0(2024-05-19,#6371):正式引入 fetch 适配器,成为 Node 环境下的第三适配层。
  • 后续版本围绕 fetch 适配器做了大量打磨:
    • v1.7.0-beta.1(#6380):将 fetch 相关TypeError归类为AxiosError.ERR_NETWORK
    • v1.7.6(#6524):修正 FormData 载荷的Content-Length计算;(#6582)优化信号组合逻辑;
    • v1.7.7(#6584):Safari 流处理回退到流读取器;
    • v1.7.5(#6533):Cloudflare Workers 凭证处理;
    • v1.12.0(#7003):为 fetch 适配器新增fetch/Request/Responseenv配置变量;(#6982)将底层网络错误细节通过cause暴露;
    • v1.16.0(#10795、#10772、#10806):强制maxBodyLength/maxContentLengthUser-Agent与 HTTP 适配器对齐、保留原始 abort 原因。

3.2 配置与请求控制

  • v1.1.3(#5113):支持自定义paramsSerializer
  • v1.4.0(#5339):支持自定义lookup函数(DNS 解析可插拔)。
  • v1.5.0(#5324、#5839):导出getAdapter,并以无unsafe前缀导出适配器。
  • v1.6.2(#6046):新增withXSRFToken选项,作为恢复旧版withCredentials行为的替代方案(需与withCredentials配合使用)。
  • v1.8.0(#5902、#6192):新增忽略绝对 URL 的配置allowAbsoluteUrls,这是一项BREAKING CHANGE——此前依赖“请求 URL 优先于合并”的代码,现在会改为合并 URL。该逻辑位于 lib/core/buildFullPath.js 第 68–76 行(allowAbsoluteUrls === false时强制走combineURLs)。
  • v1.9.0(#5707)AxiosHeaders新增getSetCookie()方法。
  • v1.13.5(#7326)isAbsoluteURL增加输入校验,优雅处理畸形/意外输入。

3.3 HTTP/2 与压缩

  • v1.13.0(#7150):Node HTTP 适配器新增 HTTP/2 支持;会话池逻辑在v1.17.0(#10861)被抽取为独立辅助模块 lib/helpers/Http2Sessions.js(sessionTimeout默认 1000ms),并补充会话池、超时、清理行为的单元测试。
  • v1.13.3(#7256):HTTPS 连接默认使用 443 端口。
  • v1.17.0(#6792、#10920):Node HTTP 适配器支持 zstd 响应解压,由transitional.advertiseZstdAcceptEncoding控制是否在Accept-Encoding中声明zstd。源码印证:lib/defaults/transitional.js 第 8 行advertiseZstdAcceptEncoding: false;lib/adapters/http.js 第 49 行定义zstdOptions、第 57 行拼接ACCEPT_ENCODING_WITH_ZSTD、第 1190 行对zstd内容编码分支调用zlib.createZstdDecompress

3.4 类型与序列化增强

  • v1.12.0(#5926)JSON.parse支持 reviver;(#7003)fetchenv配置变量。
  • v1.16.0(#10802、#10680、#6897)
    • 支持 QUERY HTTP 方法(跨适配器与类型定义);
    • AxiosError暴露ECONNREFUSED常量,便于按常量而非字符串匹配“连接被拒绝”——见 lib/core/AxiosError.js 第 208 行;
    • buildURL导出内部encode辅助函数,便于用户自定义参数序列化器复用 axios 的编码逻辑。
  • v1.17.0(#10952、#10956):修正AxiosHeaders.toJSON()返回类型,并将 CommonJSisCancel类型收窄到CanceledError<T>
  • v1.18.0(#10899):新增transitional.validateStatusUndefinedResolves,让应用可选择把validateStatus: undefined当作“未提供该选项”处理;而validateStatus: null仍是“接受所有状态”的显式方式。源码印证:lib/defaults/transitional.js 第 9 行validateStatusUndefinedResolves: true,index.d.ts 第 305–306 行声明两个transitional字段。
  • v1.19.0(#11043、#11081、#11051、#11067)
    • mergeConfig保留自有可枚举的 symbol 键字段,并在公开 TypeScript 声明、响应、错误、适配器与序列化器中引入通用params类型;
    • 新增可选的AxiosHeaders.parseParameters()解析器(引号感知、RFC 风格 HTTP 参数解析),同时保留旧的解析行为——见 lib/core/AxiosHeaders.js 第 414–415 行static parseParameters
    • 补上缺失的 Cloudflare520 WebServerReturnsAnUnknownError状态码及对应 ESM/CJS 声明——见 lib/helpers/HttpStatusCode.js 第 73 行。

3.5 错误与序列化健壮性

  • v1.19.0(#11044、#11059):在 JSON 兼容快照中将Set值序列化为数组;并为原本为空的AggregateError合成有用的AxiosError消息。源码印证:lib/core/AxiosError.js 第 83–96 行aggregateErrorMessage,在AxiosError.from(第 99–131 行)中当error.message为空且存在error.errors时调用,从而避免双栈/Happy-Eyeballs 连接失败时出现空白消息。
  • v1.19.0(#11008、#11038):畸形协议错误中带上“规范化、安全脱敏”的出错 URL,并在拼接 base URL 时去除重复的尾斜杠。源码印证:lib/core/buildFullPath.js 第 18–43 行redactSensitiveURLParts(用 lib/core/AxiosError.js 第 6 行导出的REDACTED标记替换 userinfo、查询值、fragment),第 50 行将脱敏 URL 嵌入ERR_INVALID_URL消息。
  • v1.19.0(#11035):组合中止信号时,立即传播“已中止”的输入信号。源码印证:lib/helpers/composeSignals.js 第 53–56 行,遍历信号时若signal.aborted为真则直接onabort,而非等待后续abort事件。
  • v1.19.0(#11061):修正 base64data:URL 的大小估算,使maxContentLength在 HTTP 与 Fetch 适配器间一致执行。源码印证:lib/helpers/estimateDataURLDecodedBytes.js 同时导出estimateDataURLDecodedBytes(面向 Fetch,第 148 行)与estimateDataURLBufferAllocation(面向 NodeBuffer.from,第 164 行),分别对应两种解码路径的真实字节占用。

四、适配器与多运行时支持演进

Axios 通过适配层抹平环境差异:Node 使用http适配器,浏览器使用xhr/fetch,并逐步扩展到 Deno、Bun、React Native。

4.1 三大适配器

  • http(Node):lib/adapters/http.js
  • xhr(浏览器):lib/adapters/xhr.js
  • fetch(v1.7.0+):lib/adapters/fetch.js

适配器的加载与按名导出在 v1.2.0(#5277 “allowing adapters to be loaded by name”)、v1.5.0(导出getAdapter)逐步成型。

4.2 Nodehttp适配器的关键修复

  • v1.13.1(#7193):修复非 OK 状态响应时数据流被中断的回归。
  • v1.13.2(#7206):修复 keep-alive 请求在带超时时的socket hang up;(#7202)提前退出循环的性能改进。
  • v1.15.2(#10788):修复 keep-alive 连接池内存泄漏——为每个 socket 安装单一error监听器,通过kAxiosSocketListener/kAxiosCurrentReq追踪活跃请求,消除按请求累积监听器导致的MaxListenersExceededWarning与线性堆增长。
  • v1.17.0(#10957):通过 HTTP CONNECT 代理隧穿 HTTPS 请求时,保留用户httpsAgent的 TLS 选项。

4.3 XHR / 浏览器细节

  • v1.16.0(#10787):在 error、timeout、abort 路径上退订cancelTokenAbortSignal监听器,防止订阅泄漏。
  • v1.16.1(#10868):防止某些环境在 XHR 上传时输出的畸形ProgressEvent(缺失/非法loaded/total)导致崩溃。
  • v1.16.1(#10864):修复 fetch 适配器中 Webpack 4 无法解析的语法,恢复旧版打包器兼容性。

4.4 Deno、Bun 与 React Native 支持

  • v1.13.3(#5754):为package.json增加bun导出条件,让 Bun 加载 Node.js 构建而非浏览器构建。当前 package.json 的exports中同时存在bunreact-nativebrowserdefault条件,印证了这一演进。
  • v1.15.0(#10652):为 Deno 与 Bun 增加完整 smoke 测试套件,并在每次发版前于 CI 中运行两种运行时。仓库中对应目录为 tests/smoke/deno 与 tests/smoke/bun;package.json 的 scripts 提供test:smoke:denodeno task ...)与test:smoke:bunbun test --cwd tests/smoke/bun)。
  • v1.13.6(#5764):在 React Native 环境正确处理原生Blob对象。
  • v1.13.6(#7386):修复 React Native / Browserify 的模块导出问题。

适用前提:Deno/Bun 的官方支持(smoke 套件 + CI 前置校验)自 v1.15.0 起;bun导出条件自 v1.13.3 起。低版本运行时的行为可能不一致,升级前建议在目标运行时跑一次 smoke 测试。

五、升级前必须关注的行为变更

CHANGELOG 中有一批“可观察行为变更”,直接决定升级是否安全。建议升级时按下表逐项核对:

版本变更影响与建议
1.7.4拒绝协议相对 URL(SSRF,#6539)依赖//host/...形式请求的代码会失效,需改为完整协议 URL
1.8.0allowAbsoluteUrls(BREAKING,#6192)默认改为合并 base 与请求 URL;如需旧行为需显式配置
1.13.5拦截器执行顺序变化依赖 v1.13 之前顺序的应用可启用useLegacyInterceptorOrder回退
1.15.0含 CR/LF 的头值抛错旧代码若向头中注入换行会由“静默”变为“抛异常”
1.16.0fetch 适配器强制maxBodyLength/maxContentLength之前被忽略的体积上限现在真正生效,超大请求/下载可能开始报错
1.16.0代理路径保留用户Host头(#10822)虚拟主机式代理路由行为改变
1.16.0URL 内嵌 Basic auth 凭据改为 URL 解码(#10825)形如https://user:p%40ss@host现在按解码值上网
1.16.0unescape()替换为现代 UTF-8 编码(#7378)非 ASCII URL 处理回归规范,依赖旧unescape怪癖的输出字节可能不同
1.18.0畸形http:/https:URL 抛ERR_INVALID_URL(#11000)省略//的 URL 不再被宽松解析
1.19.0同步请求拦截器失败后不再派发请求(#11071)除非配对的 rejection 处理成功,否则请求不再发出
1.19.0负进度值钳制为 0(#11039)进度回调不再出现负值

v1.16.0为例,CHANGELOG 明确提示 fetch 适配器的maxBodyLength/maxContentLength此前被静默忽略;把 axios 从 1.15.x 升到 1.16.0 的团队,若之前依赖“无体积限制”的默认,需重新评估下载/上传上限,否则可能出现新的ERR_BAD_RESPONSE/体积相关错误。

六、工程化与发布流程演进

CHANGELOG 的 “Maintenance & Chores” 部分记录了工程链路的演进,对理解仓库的构建与测试布局很有帮助:

  • v1.2.2:引入 conventional-changelog 自动化与 GitHub Actions 发布脚本(#5384、#5397 等),奠定自动发布基础。
  • v1.14.0(#7484 等):测试套件整体迁移到 Vitest、ESLint 升级 v10、Rollup 升级、Husky 9、TypeScript 升级、Express 测试脚手架现代化。当前 package.json 的test指向vitest run,并提供test:vitest:unittest:vitest:browser等分项,印证迁移完成。
  • v1.15.0:CI 供应链安全加固(OIDC 发布、SHA 固定、权限最小化),见第 2.7 节。
  • v1.17.0(#10939):通过files白名单并去掉不需要的未压缩 source map,降低发布包体积。当前 package.json 的files字段即为白名单形式。
  • v1.19.0(#11054):仅对发布的压缩 bundle 生成 source map,从非压缩构建中移除失效的 map 引用。

运行/查看方式(均为只读说明,不修改仓库):

  • 单元测试:npm run test:vitest(或分项test:vitest:unit/test:vitest:browser
  • Deno smoke:npm run test:smoke:deno
  • Bun smoke:npm run test:smoke:bun
  • 构建:npm run build

七、如何高效阅读 CHANGELOG 并定位源码

结合本仓库,建议按以下方式把 CHANGELOG 条目落到可验证的代码位置:

  1. 确认当前版本:先读 package.json 的version字段,对齐 CHANGELOG 顶部版本(当前为 1.19.0)。
  2. 安全条目:在 CHANGELOG 的🔒 Security Fixes小节按版本检索 CVE/PR 号,再对照源码印证——例如shouldBypassProxy见 lib/helpers/shouldBypassProxy.js,原型污染防护见 lib/helpers/formDataToJSON.js、lib/core/mergeConfig.js,SSRF 白名单见 lib/adapters/http.js。
  3. 功能条目🚀 New Features小节的配置项通常落在 lib/defaults/transitional.js(transitional 开关)与 index.d.ts(类型声明),行为实现落在对应适配器(lib/adapters/*)或核心(lib/core/*)。
  4. 修复条目🐛 Bug Fixes按模块名(http/fetch/xhr/headers/types)定位到对应文件,必要时再查tests/下同名测试用例佐证。
  5. 版本语义与迁移:配合 semver.md 理解版本约定,配合 MIGRATION_GUIDE.md 处理跨版本迁移,配合 SECURITY.md 与 THREATMODEL.md 理解安全边界与披露策略。

小结:Axios 的 v1.x 演进是一条“功能落地 → 安全纵深加固 → 多运行时支持”的清晰主线。从 1.0.0 的基础能力,到 1.6.0/1.7.4 的 CSRF 与 SSRF 修复,再到 1.15.x 的 CRLF/原型污染防御与allowedSocketPaths白名单,直至 1.19.0 的 form-data 版本下限提升与 NO_PROXY 匹配加固,每一步都能在lib/源码中找到对应实现。对使用者而言,读懂这份 CHANGELOG 的价值在于:升级前能预判安全边界与行为变更(尤其 1.16.0 的 fetch 体积上限、1.8.0 的allowAbsoluteUrls),并能把每条变更精确映射到源码与测试,从而做出有依据的升级决策。

【免费下载链接】axiosPromise based HTTP client for the browser and node.js项目地址: https://gitcode.com/GitHub_Trending/ax/axios

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询