升级指南

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正在使用。随着这个版本,多填充已经被删除,如果您的环境需要它,您将需要自己提供它。

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

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

axios.success/axios.error

这个success,和error别名在。在这次发布时,它们已经被完全删除。相反,请使用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');