17. axios

2018-11-09  本文已影响0人  dwy_interesting

axios是时下最流行的http请求库,可以用于浏览器环境与nodejs环境。目前axios的最近版本是0.18.0

axios的主要特征包括:

在浏览器环境创建xhr请求
在nodejs环境创建http请求
支持PromiseAPI
请求与响应拦截器
处理请求参数与返回数据
取消请求
自动转换JSON数据
客户端支持防范XSRF

axios基本用法

axios.get('/user?ID=12345')
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })  .then(function () {
    // always executed
  });
image.png

Axios类的构造函数:

// /lib/core/Axios.js

function Axios(instanceConfig) {

    // 默认配置
    this.defaults = instanceConfig;

    // 拦截器
    this.interceptors = {
        // 请求拦截器
        request: new InterceptorManager(),
        // 响应拦截器
        response: new InterceptorManager()
    };
}

Axios.prototype.request方法是Axios类原型方法中的重中之重。

Axios.prototype.request = function request(config) {
    // 用于API中的 axios(config) 或 axios(url[, config])
    if (typeof config === 'string') {
        config = arguments[1] || {};
        config.url = arguments[0];
    } else {
        config = config || {};
    }
    // 将传入的配置与默认配置合并
    config = mergeConfig(this.defaults, config);
    // 设置请求方法
    config.method = config.method ? config.method.toLowerCase() : 'get';
    // 请求拦截
    // 发送请求
    // 响应拦截
}
上一篇下一篇

猜你喜欢

热点阅读