升级指南

0.13.x->0.14.0

打字本定义

AXOS类型记录定义已经更新,以匹配AXOSAPI并使用ES 2015模块语法。

请使用以下方法import语句导入类型记录中的AXIOS:

import axios from 'axios';axios.get('/foo')
  .then(response => console.log(response))
  .catch(error => console.log(error));

agent配置选项

这个agent配置选项已被两个新选项替换:httpAgenthttpsAgent。请用它们代替。

{
  // Define a custom agent for HTTP
  httpAgent: new http.Agent({ keepAlive: true }),
  // Define a custom agent for HTTPS
  httpsAgent: new https.Agent({ keepAlive: true })}

progress配置选项

这个progress配置选项已被替换为onUploadProgressonDownloadProgress各种选择。

{
  // Define a handler for upload progress events
  onUploadProgress: function (progressEvent) {
    // ...
  },

  // Define a handler for download progress events
  onDownloadProgress: function (progressEvent) {
    // ...
  }}

0.12.x->0.13.0

这个0.13.0发行版包含了对自定义适配器和错误处理的一些更改。

错误处理

在此发布之前,错误可能是状态代码错误的服务器响应,也可能是实际的服务器响应。Error。有了此发布承诺,将始终拒绝Error。在收到答复的情况下,Error也将包括回应。

axios.get('/user/12345')
  .catch((error) => {
    console.log(error.message);
    console.log(error.code); // Not always specified
    console.log(error.config); // The config that was used to make the request
    console.log(error.response); // Only available if response was received from the server
  });

请求适配器

这个版本改变了一些关于请求适配器工作方式的内容。如果您正在使用自己的自定义适配器,请注意。

  1. 现在适配器外部调用响应转换器。

  2. 请求适配器返回Promise.

这意味着您不再需要调用transformData关于响应数据。你也不会再收到resolvereject作为适配器中的参数。

以前的代码:

function myAdapter(resolve, reject, config) {
  var response = {
    data: transformData(
      responseData,
      responseHeaders,
      config.transformResponse    ),
    status: request.status,
    statusText: request.statusText,
    headers: responseHeaders  };
  settle(resolve, reject, response);}

新代码:

function myAdapter(config) {
  return new Promise(function (resolve, reject) {
    var response = {
      data: responseData,
      status: request.status,
      statusText: request.statusText,
      headers: responseHeaders    };
    settle(resolve, reject, response);
  });}

有关详细信息,请参阅相关提交:

  • 响应变压器

  • 请求适配器承诺

0.5.x->0.6.0

这个0.6.0发布版主要包含bug修复,但是升级时要注意几件事。

ES6承诺填充

直到0.6.0ES6版Promise正在使用ES6-承诺。随着这个版本,多填充已经被删除,如果您的环境需要它,您将需要自己提供它。

require('es6-promise').polyfill();var axios = require('axios');

这将多填全球环境,只需要做一次。

axios.success/axios.error

这个success,和error别名在0.4.0。在这次发布时,它们已经被完全删除。相反,请使用axios.then,和axios.catch分别。

axios.get('some/url')
  .then(function (res) {
    /* ... */
  })
  .catch(function (err) {
    /* ... */
  });

UMD

AXOS的早期版本随AMD、CommonJS和GlobalBuild一起提供。所有这些都被滚动到一个UMD构建中。

// AMDrequire(['bower_components/axios/dist/axios'], function (axios) {
  /* ... */});// CommonJSvar axios = require('axios/dist/axios');