axios.js 源码分析

Posted daoket

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios.js 源码分析相关的知识,希望对你有一定的参考价值。

axios.js 源码分析

axios.js --> Axios.js --> InterceptorManager.js --> dispatchRequest.js --> transformData.js --> adapters

  1. axios 为什么可以在浏览器和服务器上同时运行?
    答:因为axios使用了适配器模式,在node中引入http模块请求,在浏览器中使用xhr对象进行请求

  2. axios 如何实现请求和相应的修改
    答:通过一个拦截器(InterceptorManager)实现,拦截器其实就是一个观察者模式,通过use添加,通过eject删除,通过forEach进行notify

  3. 拦截器和转换器的区别?
    答:拦截器主要是用来对请求和响应的数据进行一些处理,转化器则是将请求和响应的数据进行一些转换,比如转换请求参数,JSON相应数据等

  4. axios常用配置
import axios from ‘axios‘

// 设置通用header
axios.defaults.headers.common[‘X-Requested-With‘] = ‘XMLHttpRequest‘; // xhr标识

// 设置某种请求的header
axios.defaults.headers.post[‘Content-Type‘] = ‘application/x-www-form-urlencoded;charset=utf-8‘;

// 设置某次请求的header
axios.get(url, {
  headers: {
    ‘Authorization‘: ‘whr1‘,
  },
})

//跨域携带cookie
axios.defaults.withCredentials = true;

// 设置超时
axios.defaults.timeout = 3000;

// 超时处理
axios().catch(error => {
  const { message } = error;
  if (message.indexOf(‘timeout‘) > -1){
    // 超时处理
  }
})



以上是关于axios.js 源码分析的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

《Docker 源码分析》全球首发啦!

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段