axios拦截器配置

import axios from "axios";
import { message } from "antd";
import "../routes/main/index";
import { forEach } from "ramda";
import { from } from "core-js/fn/array";


const request = axios.create({
    baseURL: process.env.NODE_ENV === "development" ? "api" : "",
    timeout: 12000000,
});
//请求拦截
request.interceptors.request.use(
    (config) => {
        const TOKEN = localStorage.getItem("token");
        if (TOKEN) {
            config.headers["access_token"] = TOKEN; // authorization
            if (config.url.includes("?")) {
                config.url = `${config.url}&access_token=${TOKEN}`;
            } else {
                config.url = `${config.url}?access_token=${TOKEN}`;
            }
        }
        return config;
    },
    () => {
        message.warning("ajax请求时错误");
    }
);
//响应拦截
request.interceptors.response.use(
    (response) => {
        let hadError =
            Object.keys(errorCodeEnum).includes(response.data.msg) ||
            !response.data.success;
        if (hadError) {
            let msg = errorCodeEnum[response.data.msg] || response.data.msg;
            msg && message.info(msg);
        }
        return response.data;
    },
    (error) => {
        const resStatusCodeObj = {
            200: "服务器成功返回请求的数据。",
            201: "新建或修改数据成功。",
            202: "一个请求已经进入后台排队(异步任务)。",
            204: "删除数据成功。",
            400: "用户名或密码错误",
            401: "用户没有权限(令牌、用户名、密码错误)。",
            403: "用户得到授权,但是访问是被禁止的。",
            404: "发出的请求针对的是不存在的记录,服务器没有进行操作。",
            406: "请求的格式不可得。",
            410: "请求的资源被永久删除,且不会再得到的。",
            422: "当创建一个对象时,发生一个验证错误。",
            500: "服务器发生错误,请检查服务器。",
            502: "网关错误。",
            503: "服务不可用,服务器暂时过载或维护。",
            504: "网关超时。",
            default: "未知错误",
        };
        if (!error.response) {
            return message.error(resStatusCodeObj.default);
        }
        const errMsg =
            resStatusCodeObj[error.response.status] || resStatusCodeObj.default;
        if (parseInt(error.response.status) === 401) {
            window.location.href = "/#/login";
        }
        message.destroy();
        message.warning(errMsg);
    }
);

export default request;

引用

import request from '../utils/request';
import { NormalBasePath } from './../constants/constants';

export function query(type, params) {
    return request({
        url: `${NormalBasePath}/class-type`,
        method: 'get',
        params: {
            ...params,
            type
        }
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值