尧图精选

axios 请求配置(Request Config)完全指南:从 URL 构造、安全上限到 Node.js 传输层参数

🕒 发布时间:2026/9/7 9:14:48 📁 来源:尧图网络
axios 请求配置Request Config完全指南从 URL 构造、安全上限到 Node.js 传输层参数【免费下载链接】axiosPromise based HTTP client for the browser and node.js项目地址: https://gitcode.com/GitHub_Trending/ax/axios本文系统讲解 axios 请求配置对象Request Config的每一个配置项URL 构造与baseURL的边界、请求/响应转换管道含parseReviver高精度解析、参数序列化与 RFC 3986 严格编码、认证与 XSRF 令牌、maxContentLength/maxBodyLength防解压炸弹安全上限以及 Node.js 专属的代理、Unix Socket、限流等传输层选项。读完你将能够完整配置一次跨浏览器/Node.js 的请求并结合 lib/defaults/index.js 等源码确认每个参数的默认值与底层生效路径并直接套用文末的完整配置示例。请求配置用于参数化一次请求。可选项非常多但唯一必填的选项是url若配置对象中没有method字段默认使用GET方法。安全警告解压炸弹防护是可选开启的。默认情况下maxContentLength与maxBodyLength均为-1无限制这一点可以在 lib/defaults/index.js 中确认。恶意或被入侵的服务器可以返回一个很小的 gzip/deflate/brotli/zstd 压缩体解压后膨胀到数 GB从而耗尽 Node.js 进程资源。如果调用不完全可信的服务器务必设置上限axios.defaults.maxContentLength 10 * 1024 * 1024; // 10 MB axios.defaults.maxBodyLength 10 * 1024 * 1024;URL 构造url、method、baseURL、allowAbsoluteUrlsurl与methodurl是请求的目标地址可以是字符串也可以是URL实例。http:或https:协议的 URL必须在协议后包含//形如https:example.com或https:/example.com的非法值会被以ERR_INVALID_URL错误拒绝应使用https://example.com这样的规范写法。method是请求使用的 HTTP 方法默认值为GET。baseURLURL 构造便利而非安全边界baseURL会被拼接在url前面除非url本身已是绝对 URL。它适合在同一个域名/接口版本前缀下发起多次请求避免重复书写域名与版本前缀。源码中这一逻辑位于 lib/core/buildFullPath.js仅当url为相对地址、或显式设置allowAbsoluteUrls false时才执行combineURLs(baseURL, requestedURL)。需要特别注意的安全边界说明baseURL只是 URL 构造便利不是安全边界。如果url来自不可信输入应在传给 axios 之前自行校验相对url可以包含..段与baseURL拼接后经平台 URL 解析器规范化请求可能落到预期路径前缀之外allowAbsoluteUrls: false只能阻止绝对 URL 绕过baseURL并不会校验或限制相对路径baseURL同样适用协议后必须有//的规范规则该校验与url共用同一个正则malformedHttpProtocol /^https?:(?!\/\/)/i见 lib/core/buildFullPath.js。allowAbsoluteUrlsallowAbsoluteUrls决定绝对 URL 是否可以覆盖已配置的baseUrltrue默认绝对url值直接替换baseUrlfalse绝对url值前面永远会拼接baseUrl。请求与响应数据管道transformRequest、transformResponse、parseRevivertransformRequest允许在数据发送前修改请求体。函数以请求数据为唯一参数被调用仅对PUT、POST、PATCH、DELETE方法生效数组中的最后一个函数必须返回字符串或 Buffer、ArrayBuffer、FormData、Stream 实例。axios 的默认实现lib/defaults/index.js按 Content-Type 分流FormData原样透传除非声明 JSONBuffer/ArrayBuffer/Stream/File/Blob/ReadableStream 原样返回URLSearchParams会设置application/x-www-form-urlencoded;charsetutf-8并toString()普通对象在x-www-form-urlencoded下走toURLEncodedForm在multipart/form-data或文件列表下走toFormData此时读取this.env.FormData与this.formSerializer其余情况设置Content-Type: application/json并通过stringifySafely序列化——它会先尝试JSON.parse字符串合法则原样trim 后发出否则JSON.stringify。transformResponse允许在数据传递给then/catch之前修改响应数据。默认实现lib/defaults/index.js只在responseType json显式或transitional.forcedJSONParsing为真时才对字符串响应做JSON.parse(data, parseReviver)解析失败时仅当strictJSONParsing!silentJSONParsing responseType json成立才抛出包装为ERR_BAD_RESPONSE的AxiosError其余情况静默返回原始字符串。parseReviver高精度 JSON 解析与类型水合parseReviver允许向默认transformResponse中使用的原生JSON.parse()直接提供自定义 reviver 函数。它特别适合高性能类型水合例如把 ISO 日期串转为Temporal或Date对象或避免解析精度丢失。源码印证return JSON.parse(data, own(this, parseReviver))见 lib/defaults/index.js。在 ES2023 环境中reviver 会收到第三个参数context其中包含原始 JSON 文本source可以据此精确转换大整数BigInt避免按标准 JavaScript 数字解析时丢失精度。注意Temporal尚未在所有环境中可用如有需要请考虑 polyfill。const client axios.create({ parseReviver: (key, value, context) { // 示例无精度损失的 BigInt 解析 if (typeof value number context?.source) { const isInteger Number.isInteger(value); const isUnsafe !Number.isSafeInteger(value); const isValidIntegerString /^-?\d$/.test(context.source); if (isInteger isUnsafe isValidIntegerString) { try { return BigInt(context.source); } catch { // 回退解析失败时返回原值 } } } // 示例把日期字符串水合为 Temporal 对象 if ( typeof value string /^\d{4}-\d{2}-\d{2}$/.test(value) typeof Temporal ! undefined Temporal?.PlainDate ) { return Temporal.PlainDate.from(value); } return value; }, });data与formDataHeaderPolicydata是作为请求体发送的数据可以是字符串、普通对象、Buffer、ArrayBuffer、FormData、Stream 或 URLSearchParams仅对PUT、POST、DELETE、PATCH生效。在无transformRequest干预时允许的取值范围字符串、普通对象、ArrayBuffer、ArrayBufferView、URLSearchParams通用仅浏览器FormData、File、BlobReact NativeFormData仅 NodeStream、Buffer、FormDataform-data包。对浏览器、Web Worker 和 React Native 的FormData对象不要手动设置Content-Type运行环境会自行附加 multipart boundary。formDataHeaderPolicyNode.js 专属控制 axios 如何拷贝 Node.jsFormData#getHeaders()返回的头部。默认值legacy会拷贝全部返回头部以保留 v1 行为设为content-only时仅拷贝Content-Type和Content-Length。如果自定义或不完全信任该FormData对象建议设为content-only其他头部请通过请求headers显式声明。生效点在 lib/core/setFormDataHeaders.js由 lib/adapters/http.js 与 lib/helpers/resolveConfig.js 共同读取该配置。headersheaders是随请求发送的 HTTP 头部。Content-Type默认为application/json由默认transformRequest按上文逻辑设置Accept默认application/json, text/plain, */*见 lib/defaults/index.js。URL 参数params、paramsSerializer与严格 RFC 3986 编码params是随请求发送的 URL 查询参数必须是普通对象或URLSearchParams对象如果url本身带有查询参数会与params对象合并。paramsSerializer允许在发送前自定义序列化params其完整选项见文末配置示例。在 TypeScript 中AxiosRequestConfigD, P用P表示params类型自定义paramsSerializer会收到同一类型interface SearchParams { query: string; page?: number; } const config: AxiosRequestConfigunknown, SearchParams { params: { query: axios, page: 1 }, paramsSerializer: (params) ${params.query}:${params.page ?? 1}, };严格 RFC 3986 百分号编码默认情况下axios 会把%3A、%24、%2C、%20解码回:、$、,、以提升可读性其中遵循application/x-www-form-urlencoded在查询串中表示空格的约定。这些字符在 RFC 3986 中是合法的查询组件字符因此默认输出是正确的但某些后端要求严格百分号编码并会拒绝可读形式。此时用encode选项替换默认编码器// 按请求设置对查询值输出严格 RFC 3986 百分号编码 axios.get(/foo, { params: { filter: JSON.stringify({ startedAt: 2026-01-23 }) }, paramsSerializer: { encode: encodeURIComponent }, }); // 或设置到实例默认值 const client axios.create({ paramsSerializer: { encode: encodeURIComponent }, });认证与安全auth、XSRF 相关选项、redact、validateStatusauthauth表示使用 HTTP Basic 认证并提供凭据它会设置Authorization头覆盖你通过headers自定义的同名头。若省略authNode.js HTTP 适配器和 fetch 适配器可从 URL 中推断 Basic 凭据如https://user:passexample.comURL 中的百分号编码会被解码且auth始终优先于 URL 内嵌凭据。Node.js HTTP 适配器在同源重定向时保留 Basic 认证跨源重定向时将其移除。注意该参数只能配置 Basic 认证Bearer 令牌等应使用自定义Authorization头。XSRF 三件套xsrfCookieName、xsrfHeaderName、withXSRFTokenxsrfCookieName作为 XSRF 令牌值的 Cookie 名默认XSRF-TOKEN见 lib/defaults/index.jsxsrfHeaderName承载 XSRF 令牌值的请求头名默认X-XSRF-TOKENwithXSRFToken控制 axios 是否在浏览器请求中读取 XSRF Cookie 并设置 XSRF 头接受四种取值undefined默认——仅对同源请求设置 XSRF 头true——总是设置包括跨源请求false——从不设置(config: InternalAxiosRequestConfig) boolean | undefined——按请求决定。withXSRFToken: boolean | undefined | ((config: InternalAxiosRequestConfig) boolean | undefined);警告跨源 XSRF 与withCredentials的关系。withCredentials控制跨站请求是否携带凭据Cookie、HTTP 认证。旧版 axios 中设置withCredentials: true会隐式地使跨源请求发送 XSRF 头新版将两者解耦要在跨源请求上发送 XSRF 头必须同时设置withCredentials: true与withXSRFToken: true。axios.get(/user, { withCredentials: true, withXSRFToken: true });从源码结构看该决策集中在 lib/helpers/resolveConfig.js回调函数会先以新配置调用求值最终判定使用严格布尔比较withXSRFToken true || (withXSRFToken null isURLSameOrigin(newConfig.url))注释明确说明这是为了防止原型污染型注入。另外 lib/core/Axios.js 提供了拼写纠正旧拼法withXsrfToken会被validators.spelling(withXSRFToken)引导到正确键名。redact错误序列化时的敏感配置脱敏redact是可选的键名数组用于在AxiosError经toJSON()序列化时掩盖对应配置项。匹配大小写不敏感并在整个序列化配置上递归进行命中值被替换为[REDACTED ****]。redact只影响错误序列化不会修改请求数据、头部或原始配置对象。实现见 lib/core/AxiosError.js 的redactConfig它对数组与AxiosHeaders深度遍历并带环检测toJSON()中仅当配置自带非空redact数组时才启用lib/core/AxiosError.js。axios .get(/user/12345, { headers: { Authorization: Bearer token }, auth: { username: me, password: secret }, redact: [authorization, password], }) .catch((error) { console.log(error.toJSON().config); });validateStatus与过渡行为validateStatus允许替换默认的状态码校验默认 axios 在状态码不在 200–299 时拒绝 Promise默认实现status 200 status 300见 lib/defaults/index.js自定义函数在希望接受的状态码上返回true即可。三个容易混淆的取值显式validateStatus: undefined默认保留历史行为解析所有状态码因为transitional.validateStatusUndefinedResolves默认为true见 lib/defaults/transitional.js。若希望显式undefined表现同未提供validateStatus走配置/默认校验器默认拒绝非 2xx把该过渡开关设为falseaxios.get(/user/12345, { validateStatus: undefined, transitional: { validateStatusUndefinedResolves: false, }, });validateStatus: null永远接受所有状态码若已关闭过渡行为且就是想接受所有状态码请使用validateStatus: null或返回true的校验器。请求体上限、超时、进度与适配器maxContentLength与maxBodyLengthNode.js HTTP/fetchmaxContentLength定义响应最大字节数。Node.js HTTP 适配器对内存缓冲与流式响应均生效fetch 适配器在响应长度已声明、响应流可跟踪或可确定大小时生效maxBodyLength定义请求体最大字节数由 Node.js HTTP 适配器强制执行fetch 适配器在可确定请求体长度时执行。⚠️安全提示默认值为-1无限制。无上限的响应叠加 gzip/deflate/brotli/zstd 解压可能构成解压炸弹式拒绝服务。消费不完全可信的服务器时应显式设置上限见文首警告。timeout与withCredentialstimeout是请求过期前的毫秒数超过即取消请求默认0表示不创建超时见 lib/defaults/index.js 的注释。withCredentials指示跨站 Access-Control 请求是否携带凭据Cookie、Authorization 头或客户端 TLS 证书对同源请求无效。onUploadProgress与onDownloadProgress两个回调分别监听上传与下载进度事件对象解构形式为{loaded, total, progress, bytes, estimated, rate, upload true}下载侧为download true。adapteradapter允许接管请求的发送过程便于测试返回一个 Promise 并提供合法响应即可。内置适配器有三个fetch、http、xhr见 lib/adapters/adapters.js 的knownAdapters映射。也可以传入适配器数组axios 会按顺序使用第一个当前环境支持的适配器解析逻辑在 lib/adapters/adapters.js 的getAdapter中——若全部不可用会抛出ERR_NOT_SUPPORT并列出每个适配器的拒绝原因。全局默认是adapter: [xhr, http, fetch]lib/defaults/index.js按运行环境实际落到浏览器xhr、Nodehttp或 fetch 上。Node.js 传输层选项responseEncoding、maxRedirects、重定向钩子与 Unix SocketresponseEncodingNode.js 专属指定解码响应所用的编码支持ascii/ASCII、ansi/ANSI、binary/BINARY、base64/BASE64、base64url/BASE64URL、hex/HEX、latin1/LATIN1、ucs-2/UCS-2、ucs2/UCS2、utf-8/UTF-8、utf8/UTF8、utf16le/UTF16LE大小写变体均可。注意responseType为stream或浏览器端请求时该选项被忽略。maxRedirects、sensitiveHeaders、beforeRedirectNode.js 重定向maxRedirects允许跟随的最大重定向次数设为0则不跟随任何重定向sensitiveHeaders可选的敏感自定义头部名数组如X-API-KeyNode.js HTTP 适配器在跟随跨源重定向时会移除这些头大小写不敏感同源重定向则保留若maxRedirects为0axios 不跟随重定向该选项不会被使用。axios.get(https://api.example.com/users, { headers: { X-API-Key: secret }, sensitiveHeaders: [X-API-Key], });beforeRedirect在重定向前修改请求的钩子可用于调整重定向时的请求选项、检查最后一批响应头或抛出错误取消请求maxRedirects为0时不会调用。源码中该配置最终挂载为options.beforeRedirects.config并按 proxy → auth → sensitiveHeaders → config 的固定顺序在每次重定向前执行lib/adapters/http.jssensitiveHeaders 与配置钩子的装配见 lib/adapters/http.js。beforeRedirect: (options, { headers }) { if (options.hostname example.com options.protocol https:) { options.auth user:password; } };警告重定向中的凭据重注入。beforeRedirect在敏感头已被剥离之后执行。follow-redirects出于安全考虑会在协议降级HTTPS → HTTP时删除凭据由于钩子在其后运行若未校验目标协议就重新注入凭据可能泄露敏感数据。请只向可信的 HTTPS 目标重注入凭据避免在降级重定向上重注入。socketPath与allowedSocketPathsNode.js 专属socketPath定义改用 Unix socket 而非 TCP 连接例如请求 Docker 守护进程时指定/var/run/docker.sock。socketPath与proxy只能指定其一同时指定时以socketPath为准。安全警告设置socketPath后URL 中的 hostname 与 port 被忽略axios 直接与指定 Unix socket 通信。若配置部分来自用户输入如代理或 webhook 转发场景攻击者可注入socketPath把流量引向/var/run/docker.sock、/run/containerd/containerd.sock、/run/systemd/private等特权本地 socket完全绕过基于 hostname 的 SSRF 防护CWE-918。请过滤不可信输入并用allowedSocketPaths白名单限制。allowedSocketPaths限制socketPath可使用的路径接受字符串或字符串数组。设置后 axios 会分别解析socketPath与各白名单条目并比较无匹配即抛出 code 为ERR_BAD_OPTION_VALUE的AxiosError未设置时行为与之前一致。实现见 lib/adapters/http.js。const client axios.create({ allowedSocketPaths: [/var/run/docker.sock], }); // 允许 await client.get(http://localhost/v1.45/info, { socketPath: /var/run/docker.sock }); // 拒绝——不在白名单内 await client.get(http://localhost/pods, { socketPath: /run/kubelet.sock });空数组allowedSocketPaths: []会阻塞所有 socket 路径。传输与代理transport、httpAgent/httpsAgent、proxy、decompress、insecureHTTPParsertransport与 Agenttransport指定请求使用的传输层例如通过http2协议发起请求。httpAgent/httpsAgent分别为 Node.js 下的 http 与 https 请求设置自定义 agent可附加keepAlive等默认未启用的选项。proxyproxy定义代理服务器的协议、主机与端口也可以通过约定俗成的环境变量http_proxy/https_proxy设置。使用环境变量时还可以用no_proxy逗号分隔的域名列表指定无需走代理的域名。在支持原生环境变量代理的 Node.js 版本中当所选httpAgent/httpsAgent启用了proxyEnv时axios 会把环境变量代理处理委托给 Node 本身——包括以NODE_USE_ENV_PROXY1、--use-env-proxy或NODE_OPTIONS--use-env-proxy启动的进程未启用proxyEnv的自定义 agent 仍走 axios 自己的环境变量代理解析显式proxy配置始终由 axios 处理。使用false禁用代理忽略环境变量auth表示对代理使用 HTTP Basic 认证并设置Proxy-Authorization头覆盖headers中的同名自定义头代理服务器使用 HTTPS 时协议须设为https。行为细节用户通过headers提供的Host头在经代理转发时会被保留对host/Host/HOST大小写不敏感匹配可借此让代理把请求视为来自example.com而实际目标为127.0.0.1:4000等虚拟主机未提供时 axios 沿用hostname:port默认行为对https://目标axios 通过代理建立 CONNECT 隧道并与源站做端到端 TLS。Proxy-Authorization只随 CONNECT 请求发送绝不进入被封装的 TLS 请求httpsAgent的 TLS 选项ca、cert、key、rejectUnauthorized等会传递到生成的隧道 agent若提供HttpsProxyAgent则完全交由其处理隧道。proxy: { protocol: https, host: 127.0.0.1, hostname: localhost, // 若同时设置hostname 优先于 host port: 9000, auth: { username: mikeymike, password: rapunz3l } },decompress与insecureHTTPParserdecompressNode.js 专属控制是否自动解压响应数据默认trueNode.js HTTP 适配器在当前运行时提供对应 zlib 解压器时支持 gzip、deflate、brotli 与 zstd。insecureHTTPParser指示使用接受非法 HTTP 头的不安全解析器可能改善与不合规 HTTP 实现的互操作性应避免使用。该选项仅 Node.js 12.10.0 及以上可用。取消机制cancelToken与signalcancelToken创建一个取消令牌可用于取消请求详见 取消请求文档signal传入AbortSignal实例即可使用AbortControllerAPI 取消请求现代标准做法与cancelToken二选一即可。兼容性与环境transitional、env、formSerializer、maxRatetransitional过渡期功能开关transitional用于启停若干过渡期行为可用选项默认值见 lib/defaults/transitional.jssilentJSONParsing为true默认时静默忽略 JSON 解析错误并把response.data置为null设为false则抛出SyntaxError。重要该选项仅在responseType显式设为json时生效responseType省略时 axios 走forcedJSONParsing尝试解析失败则静默返回原始字符串与本参数无关。要让非法 JSON 抛错需同时设置{ responseType: json, transitional: { silentJSONParsing: false } }。forcedJSONParsing即使responseType不是json也强制把响应字符串按 JSON 解析clarifyTimeoutError超时时输出更清晰的错误信息便于调试超时问题validateStatusUndefinedResolves为true默认时显式validateStatus: undefined解析所有状态码以保持兼容设为false则把显式undefined当作未提供validateStatus处理见上文validateStatus小节advertiseZstdAcceptEncoding为true时当当前 Node.js 运行时支持 zstd 解压axios 会在默认Accept-Encoding头中加入zstd即使未声明只要支持且decompress为truezstd 响应仍会被自动解压legacyInterceptorReqResOrdering为true时使用继承的请求/响应拦截器处理顺序。env与formSerializerenv用于注入运行环境相关配置例如用于把普通对象自动序列化为 FormData 的 FormData 类默认取window?.FormData || global?.FormData见 lib/defaults/index.js。formSerializer配置普通对象在作为data时如何序列化为multipart/form-datavisitor— 对每个值递归调用的自定义访问者函数dots— 使用点号记法代替中括号记法metaTokens— 保留{}等特殊键尾缀indexes— 控制数组键的中括号格式null/false/truemaxDepth默认100— 嵌套最大深度超出抛出 code 为ERR_FORM_DATA_DEPTH_EXCEEDED的AxiosError设Infinity可禁用Blob— 将 ArrayBuffer 值转换为规范 FormData 时使用的 Blob 构造器。全部细节见 multipart/form-data 格式文档及文末完整示例。maxRateNode.js 专属maxRate定义上传和/或下载的最大带宽字节/秒。接受单一数值双向同时生效或二元数组[uploadRate, downloadRate]例如100 * 1024表示 100 KB/s。更多示例见 速率限制文档。完整配置示例以下示例汇集了本页所有配置项与官方文档一致{ url: /posts, method: get, baseURL: https://jsonplaceholder.typicode.com, allowAbsoluteUrls: true, transformRequest: [function (data, headers) { return data; }], transformResponse: [function (data) { return data; }], headers: {X-Requested-With: XMLHttpRequest}, params: { postId: 5 }, paramsSerializer: { // 自定义编码函数迭代地发送键/值对。 encode?: (param: string): string { /* 在此执行自定义操作并返回转换后的字符串 */ }, // 整个参数的自定义序列化函数可复现 v1.x 之前的行为。 serialize?: (params: Recordstring, any, options?: ParamsSerializerOptions), // params 中数组索引的格式配置三种取值 // (1) indexes: null无中括号 // (2) indexes: false默认空中括号 // (3) indexes: true带索引的中括号 indexes: false, // params 序列化时对象嵌套的最大深度超出抛出 AxiosError // (ERR_FORM_DATA_DEPTH_EXCEEDED)。默认100。设 Infinity 可禁用。 maxDepth: 100 }, data: { firstName: Fred }, // data 只属于每次请求axios 不会从默认值继承或深合并它。 // 要附加公共请求体字段请使用请求拦截器或 transformRequest。 formDataHeaderPolicy: legacy, // 以另一种语法在 POST 方法体中发送数据的备选写法只发送值而不带键 data: CountryBrasilCityBelo Horizonte, timeout: 1000, withCredentials: false, adapter: function (config) { // 在此自由实现 }, adapter: xhr, auth: { username: janedoe, password: s00pers3cret }, responseType: json, responseEncoding: utf8, xsrfCookieName: XSRF-TOKEN, xsrfHeaderName: X-XSRF-TOKEN, withXSRFToken: boolean | undefined | ((config: InternalAxiosRequestConfig) boolean | undefined), onUploadProgress: function ({loaded, total, progress, bytes, estimated, rate, upload true}) { // 对 Axios 进度事件自由处理 }, onDownloadProgress: function ({loaded, total, progress, bytes, estimated, rate, download true}) { // 对 Axios 进度事件自由处理 }, maxContentLength: 2000, maxBodyLength: 2000, redact: [authorization, password], validateStatus: function (status) { return status 200 status 300; }, maxRedirects: 21, sensitiveHeaders: [X-API-Key], beforeRedirect: (options, { headers }) { if (options.hostname typicode.com) { options.auth user:password; } }, socketPath: null, allowedSocketPaths: null, transport: undefined, httpAgent: new http.Agent({ keepAlive: true }), httpsAgent: new https.Agent({ keepAlive: true }), proxy: { protocol: https, host: 127.0.0.1, // hostname: 127.0.0.1 // 若同时设置hostname 优先于 host port: 9000, auth: { username: mikeymike, password: rapunz3l } }, cancelToken: new CancelToken(function (cancel) { cancel(Operation has been canceled.); }), signal: new AbortController().signal, decompress: true, insecureHTTPParser: undefined, transitional: { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false, validateStatusUndefinedResolves: true, advertiseZstdAcceptEncoding: false, legacyInterceptorReqResOrdering: true, }, env: { FormData: window?.FormData || global?.FormData }, formSerializer: { // 自定义访问者函数用于序列化表单值 visitor: (value, key, path, helpers) {}; // 使用点号代替中括号 dots: boolean; // 在参数键中保留 {} 等特殊尾缀 metaTokens: boolean; // 数组索引格式 // null - 无中括号 // false - 空中括号 // true - 带索引中括号 indexes: boolean; // 对象嵌套的最大深度超出抛出 AxiosError (ERR_FORM_DATA_DEPTH_EXCEEDED)。 // 默认100。设 Infinity 可禁用。 maxDepth: 100; }, maxRate: [ 100 * 1024, // 上传限速 100 KB/s 100 * 1024 // 下载限速 100 KB/s ] }响应体类型与符号键自定义选项responseType指示服务器将返回的数据类型取值为arraybufferdocumentjsontextstreamblob仅浏览器formdata仅 fetch 适配器符号键Symbol自定义选项配置合并会保留自身的、可枚举的符号属性。TypeScript 应用可以为AxiosRequestConfig声明一个特定的符号键进行类型扩展随后在请求拦截器或适配器中从InternalAxiosRequestConfig读取该选项继承的或不可枚举的符号属性不会被拷贝。完整示例见 TypeScript 指南。延伸阅读适配器机制细节适配器文档安全最佳实践含解压炸弹防护安全指南取消机制cancelToken/signal详解取消文档【免费下载链接】axiosPromise based HTTP client for the browser and node.js项目地址: https://gitcode.com/GitHub_Trending/ax/axios创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →