axios
参考
https://www.jianshu.com/p/df464b26ae58
1、axios:它是一个类库,基于PROMISE管理的AJAX库
1.提供了对应请求方式的方法(例如:get/post/head/delete/put/options...)
axios.get() 向服务器发送一个请求,基于的是GET方式
2.基于GET或者POST方法发请求,返回的结果都是PROMISE实例
//链式请求---请求完第一个,请求第二个。解决了回调地狱的问题
axios.get('url01', {
params: {
lx: 12
}
}).then(result => {
let {data} = result;
//...
console.log(data);
return axios.post('url02');
}).then(result => {
let {data} = result;
console.log(data);
});
2、一次性并发多个请求
function getUserAccount(){
return axios.get('/user/12345');
}
function getUserPermissions(){
return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(),getUserPermissions()])
.then(axios.spread(function(acct,perms){
//当这两个请求都完成的时候会触发这个函数,两个参数分别代表返回的结果
}))
3、初始化一些常用配置项
axios.defaults.baseURL = 'http://api.exmple.com';
//发请求
axios.get('/list').then(result => {
console.log(result)
})
//以下参数 都会在请求信息里看到(不常用)
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['content-Type'] = 'appliction/x-www-form-urlencoded';
4、拦截器
//添加一个请求拦截器
axios.interceptors.request.use(function(config){
//在请求发出之前进行一些操作
return config;
},function(err){
//Do something with request error
return Promise.reject(error);
});
//添加一个响应拦截器
axios.interceptors.response.use(function(res){
//在这里对返回的数据进行处理
return res;
},function(err){
//Do something with response error
return Promise.reject(error);
})