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);
})


posted @ 2020-09-14 17:30  麦子同学  阅读(145)  评论(0编辑  收藏  举报