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
}
});
}