17. axios

作者: dwy_interesting | 来源:发表于2018-11-09 10:37 被阅读0次

    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';
        // 请求拦截
        // 发送请求
        // 响应拦截
    }
    

    相关文章

      网友评论

          本文标题:17. axios

          本文链接:https://www.haomeiwen.com/subject/samixqtx.html