axios

作者: 刘叶青 | 来源:发表于2019-09-28 11:07 被阅读0次

    问:有时需要第2个接口的参数需要用第1个接口请求后获得的数据(有依赖关系的2个接口),怎么办?
    答:
    思路就是:axios.then里return axios.get或者return axios.post
    axios.get("http://60.190.121.163:9002/jn_app/httpServer?requesttype=101")
    .then(function(response){
    console.log('response11', response);
    return axios.get("http://60.190.121.163:9002/jn_app/httpServer?requesttype=102&ParentDeptid=" + response.data.data[0].parentdeptid);
    }).then((res)=> {
    console.log('response22', res);
    });

    问:有时需要1个接口请求完毕以后,再请求第2个接口(只是顺序的问题,接口2不一定需要接口1返回的数据),axios如何写?
    答:
    this.axios.post('接口地址1', data).then((res) => { let data = {}; //这里的data是第1个接口的参数 this.axios.post('接口地址1', data).then(res => {
    console.log('res', res);
    });
    }).then(() => {
    let data = {}; //这里的data是第2个接口的参数
    this.$axios.post('接口地址2', data).then(res => {
    console.log('res', res);
    });
    });

    以下是对axios的简单封装,
    main.js里写(实际项目里把下面的代码放在单独的axios.js文件里,再在main.js里引入axios.js):
    // 封装axios
    import qs from 'qs';
    import axios from 'axios';
    const Axios = axios.create({
    timeout: 10000,
    responseType: 'json',
    withCredentials: true, // 是否允许带cookie这些
    headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
    }
    });
    axios.defaults.baseURL = '请求地址';
    // 请求拦截器
    axios.interceptors.request.use(
    config => {
    console.log('config', config);
    console.log('config.method', config.method);
    if(config.method == 'post'){
    config.data = qs.stringify(config.data);
    }
    return config
    },
    error => {
    console.log('error', error);
    }
    );
    Vue.prototype.axios = axios; vue文件里这样发送get请求: this.axios.get('', {
    params : {
    参数名 : 参数值
    }
    }).then(res => {
    console.log('get请求成功', res);
    });
    vue文件里这样发送post请求:
    this.$axios.post('', {
    requesttype : '101'
    }).then(res => {
    console.log('post请求成功', res);
    });

    相关文章

      网友评论

          本文标题:axios

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