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