axios的封装

在vue项目中对axios进行封装

1、引入axios,qs模块

import axios from 'axios';
import Qs from "qs";
import store from "./store";

2、配置环境

if (process.env.NODE_ENV == 'development') {	//开发环境    
    axios.defaults.baseURL = "/v1";
} else if (process.env.NODE_ENV == 'debug') {		//测试环境    
    axios.defaults.baseURL = "/visual";
} else if (process.env.NODE_ENV == 'production') { 	//生产环境   
    axios.defaults.baseURL = 'https://www.production.com';
}

3、设置请求超时时间为10s

axios.defaults.timeout = 1000 * 10;

4、post请求头的设置

axios.defaults.headers['Content-Type'] = "application/json;charset=UTF-8";

5、请求拦截

axios.interceptors.request.use(
    config => {
        if (!(config.url.includes('login'))) {
            config.headers = {
                'token': sessionStorage.token,
                // "x-ajax": true,
                // "content-type":'application/json',
            }
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
)

6、请求响应

axios.interceptors.response.use(
    response => {
        return response
    },
    error => { //失败判断
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    if (!error.response.config.url.includes('login')) {
                        sessionStorage.token = null;
                        location.reload()
                    }
            }
        }
        return Promise.reject(error.response.data)
    }
)

export default axios
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值