axios封装(拿来就用)

import axios from 'axios'

let BASE_API = ""
if (process.env.NODE_ENV === "development") {
    BASE_API = "aaaa"
}else {
    BASE_API = "bbb"
}

export default function $axios(options) {
    return new Promise((resolve, reject) => {
        const instance = axios.create({
            baseURL: BASE_API,
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
               
            },
            timeout: 5000
        });

        // request 拦截器
        instance.interceptors.request.use(
            config => {
                //在发送之前做点什么
                // let auth_token = Cookies.get('auth_token');
                // if (auth_token) {
                //     config.headers.auth_token = auth_token;
                // } else {
                //     let loginpage = Cookies.get('loginpage');
                //     if (loginpage) {
                //         // router.push('/login');
                //     }
                // }
                // if (config.method === 'post') {}
                return config;
            },
            error => {
                // 判断请求超时
                if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
                    console.log("信号不好,请求超时")
                }
            }

        );

        // response 拦截器
        instance.interceptors.response.use(
            response => {
                //对响应数据做点什么
                let data;
                if (response.data == undefined) {
                    data = JSON.parse(response.request.responseText);
                } else {
                    data = response.data;
                }
                return data;
            },
            err => {
                if (err && err.response) {
                    console.log(err)
                }// 返回接口返回的错误信息
                return Promise.reject(err);
            }
        );

        // 请求处理
        instance(options).then(res => {
            resolve(res);
            return false;
        }).catch(error => {
            reject(error);
        });
    });
}

猜你喜欢

转载自blog.csdn.net/ljy_1024/article/details/111312443