zoukankan      html  css  js  c++  java
  • axios的封装

    const http = axios.create({
    
        // 统一请求前缀
        baseURL: 'http://127.0.0.1:8888',
        // 是否允许跨域时候携带资源凭证
        withCredentials: false,
        // 请求成功的状态码校验规则
        validateStatus: status => {
            return status >= 200 && status < 400;
        },
        // 请求头统一处理「设置请求主体专递给服务器的数据格式」
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        // POST系列请求,请求主体传递信息的格式化
        transformRequest: (data, headers) => {
            if (data !== null && typeof data === "object") {
                const ct = headers['Content-Type'];
                if (ct === "application/x-www-form-urlencoded") {
                    return qs.stringify(data);
                }
            }
            return data;
        }
    });
    
    // 请求拦截器:向服务器发送请求之前
    http.interceptors.request.use(config => {
        // ...
        return config;
    });
    
    // 响应拦截器:获取到响应信息 ~ 自己处理业务逻辑之间
    http.interceptors.response.use(response => {
        // 获取响应主体信息
        return response.data;
    }, reason => {
        // 失败的统一处理「一般就是做相关的提示或者其它操作」
        let response = reason.response;
        if (response) {
            // 服务器有返回值,但是状态码不符合validateStatus校验规则
            switch (response.status) {
                case 400:
                    // ...
                    break;
                case 401:
                    // ...
                    break;
            }
        } else {
            // 服务器没有返回任何的信息
            if (reason && reason.code === "ECONNABORTED") {
                // 超时或者请求中断
            }
            if (!navigator.onLine) {
                // 网络出现故障
            }
        }
        return Promise.reject(reason);
    });
    
    export default http
    
  • 相关阅读:
    linux 命令 # tar zcvf Work.tar.gz Work
    ODBC
    vmware 与机器共享
    关机!!!
    reador哦
    asp.net的三层架构图
    十大著名黑客——阿德里安拉莫
    十大著名黑客——查德斯德尔曼
    十大著名黑客——埃里克雷蒙德
    十大著名黑客——George Hotz
  • 原文地址:https://www.cnblogs.com/lsy6/p/14383814.html
Copyright © 2011-2022 走看看