axios 支持哪些常用的配置【热度: 196】

关键词:axios 配置

作者备注

这个其实直接看官网即可 https://axios-http.com/docs/req_config

以下是翻译的全配置

{
  // `url` 是将用于请求的服务器 URL。
  url: '/user',

  // `method` 是进行请求时要使用的请求方法。
  method: 'get', // 默认值。

  // `baseURL` 将被添加到 `url` 的前面,除非 `url` 是绝对路径。设置 axios 实例的 `baseURL` 可以方便地向该实例的方法传递相对 URL。
  baseURL: 'https://some-domain.com/api',

  // `transformRequest` 允许在将请求数据发送到服务器之前对其进行更改。这仅适用于请求方法为 'PUT'、'POST'、'PATCH' 和 'DELETE'。数组中的最后一个函数必须返回一个字符串或 `Buffer`、`ArrayBuffer`、`FormData` 或 `Stream` 的实例。你可以修改 `headers` 对象。
  transformRequest: [function (data, headers) {
    // 做任何你想对数据进行的转换。

    return data;
  }],

  // `transformResponse` 允许在将响应数据传递给 `then/catch` 之前对其进行更改。
  transformResponse: [function (data) {
    // 做任何你想对数据进行的转换。

    return data;
  }],

  // `headers` 是要发送的自定义请求头。
  headers: {'X-Requested-With': 'XMLHttpRequest'},

  // `params` 是要与请求一起发送的 URL 参数。必须是一个普通对象或 `URLSearchParams` 对象。注意:值为 `null` 或 `undefined` 的参数不会在 URL 中呈现。
  params: {
    ID: 12345
  },

  // `paramsSerializer` 是一个可选的负责序列化 `params` 的函数(例如:https://www.npmjs.com/package/qs,http://api.jquery.com/jquery.param/)。
  paramsSerializer: function (params) {
    return Qs.stringify(params, {arrayFormat: 'brackets'});
  },

  // `data` 是要作为请求主体发送的数据。仅适用于请求方法为 'PUT'、'POST'、'DELETE' 和 'PATCH'。当没有设置 `transformRequest` 时,必须是以下类型之一:字符串、普通对象、`ArrayBuffer`、`ArrayBufferView`、`URLSearchParams`;仅在浏览器中:`FormData`、`File`、`Blob`;仅在 Node.js 中:`Stream`、`Buffer`。
  data: {
    firstName: 'Fred'
  },

  // 发送数据到主体的语法替代方法,方法为 post,仅发送值,不发送键。
  data: 'Country=Brasil&City=Belo Horizonte',

  // `timeout` 指定请求超时的毫秒数。如果请求花费的时间超过 `timeout`,请求将被中止。
  timeout: 1000, // 默认值为 `0`(无超时)。

  // `withCredentials` 指示是否应使用凭证进行跨站点的 Access-Control 请求。
  withCredentials: false, // 默认值。

  // `adapter` 允许对请求进行自定义处理,这使得测试更加容易。返回一个 Promise 并提供有效的响应(请参阅 lib/adapters/README.md)。
  adapter: function (config) {
    /*... */
  },

  // `auth` 表示应使用 HTTP 基本认证,并提供凭证。这将设置一个 `Authorization` 请求头,覆盖你使用 `headers` 设置的任何现有的 `Authorization` 自定义请求头。请注意,仅可通过此参数配置 HTTP 基本认证。对于 Bearer 令牌等,应使用 `Authorization` 自定义请求头代替。
  auth: {
    username: 'janedoe',
    password: 's00pers3cret'
  },

  // `responseType` 指示服务器将响应的数据类型。选项有:'arraybuffer'、'document'、'json'、'text'、'stream';仅在浏览器中:'blob'。
  responseType: 'json', // 默认值。

  // `responseEncoding` 指示用于解码响应的编码(仅在 Node.js 中有效)。注意:对于 `responseType` 为 'stream' 或客户端请求将被忽略。
  responseEncoding: 'utf8', // 默认值。

  // `xsrfCookieName` 是用作 xsrf 令牌值的 cookie 的名称。
  xsrfCookieName: 'XSRF-TOKEN', // 默认值。

  // `xsrfHeaderName` 是携带 xsrf 令牌值的 HTTP 请求头的名称。
  xsrfHeaderName: 'X-XSRF-TOKEN', // 默认值。

  // `onUploadProgress` 允许处理上传的进度事件(仅在浏览器中有效)。
  onUploadProgress: function (progressEvent) {
    // 对原生进度事件做任何你想做的处理。
  },

  // `onDownloadProgress` 允许处理下载的进度事件(仅在浏览器中有效)。
  onDownloadProgress: function (progressEvent) {
    // 对原生进度事件做任何你想做的处理。
  },

  // `maxContentLength` 定义在 Node.js 中允许的 HTTP 响应内容的最大字节大小。
  maxContentLength: 2000,

  // `maxBodyLength`(仅在 Node.js 中有效)定义允许的 HTTP 请求内容的最大字节大小。
  maxBodyLength: 2000,

  // `validateStatus` 定义对于给定的 HTTP 响应状态码是应该解析还是拒绝 Promise。如果 `validateStatus` 返回 `true`(或设置为 `null` 或 `undefined`),则 Promise 将被解析;否则,Promise 将被拒绝。
  validateStatus: function (status) {
    return status >= 200 && status < 300; // 默认值。
  },

  // `maxRedirects` 定义在 Node.js 中要遵循的最大重定向次数。如果设置为 0,则不会遵循重定向。
  maxRedirects: 5, // 默认值。

  // `socketPath` 定义在 Node.js 中要使用的 UNIX 套接字。例如:'/var/run/docker.sock' 用于向 Docker 守护进程发送请求。只能指定 `socketPath` 或 `proxy` 中的一个。如果两者都指定,则使用 `socketPath`。
  socketPath: null, // 默认值。

  // `httpAgent` 和 `httpsAgent` 定义在 Node.js 中执行 HTTP 和 HTTPS 请求时分别要使用的自定义代理。这允许添加像 `keepAlive` 这样的选项,这些选项在默认情况下是未启用的。
  httpAgent: new http.Agent({ keepAlive: true }),
  httpsAgent: new https.Agent({ keepAlive: true }),

  // `proxy` 定义代理服务器的主机名、端口和协议。你也可以使用传统的 `http_proxy` 和 `https_proxy` 环境变量来定义你的代理。如果你使用环境变量来进行代理配置,你还可以定义一个 `no_proxy` 环境变量,作为不应被代理的域名的逗号分隔列表。使用 `false` 来禁用代理,忽略环境变量。`auth` 表示应使用 HTTP 基本认证来连接到代理,并提供凭证。这将设置一个 `Proxy-Authorization` 请求头,覆盖你使用 `headers` 设置的任何现有的 `Proxy-Authorization` 自定义请求头。如果代理服务器使用 HTTPS,则你必须将协议设置为 `https`。
  proxy: {
    protocol: 'https',
    host: '127.0.0.1',
    port: 9000,
    auth: {
      username: 'mikeymike',
      password: 'rapunz3l'
    }
  },

  // `cancelToken` 指定一个取消令牌,可用于取消请求(请参阅下面的“取消”部分了解详细信息)。
  cancelToken: new CancelToken(function (cancel) {
  }),

  // `decompress` 指示是否应自动解压缩响应主体。如果设置为 `true`,还将从所有解压缩响应的对象中删除 'content-encoding' 请求头。仅在 Node.js 中有效(XHR 无法关闭解压缩)。
  decompress: true // 默认值。

}