Axios

Axios

Axios封装

将此功能封装起来,以减少代码对外部的依赖。

import axios from 'axios';

export function request(config){
    // 创建实例
    const instance = axios.create({
        // 公用的一些参数配置
        baseURL: 'http://123.207.32.32;8000',
        timeout: 5000
    });
    
    // 请求拦截
    instance.interceptors.request.use(http => {
        console.log(http);
        // http 中有些信息不符合服务器要求
        // 希望携带某些必须的信息,比如登录的token
        // 界面需要每次请求有图标显示
        return http;
    }, err => {
        console.log(err);
        return err;
    });
    
    // 响应拦截
    instance.interceptors.response.use(res => {
        console.log(res);
        return res.data;
    }, err => {
        console.log(err);
        return err;
    });
    
    // 此处返回的会是一个 Promise
    return instance(config);
}

// 项目统一使用方式,以后封装的内部可以随意变动,但对外的接口始终不变。
request({
    url: '/home/data'
}).then(res => {
    console.log(res);
}).catch(err => {
    console.log(err);
})
posted @ 2020-04-21 20:56  Distringer  阅读(97)  评论(0)    收藏  举报