dataControl/src/utils/axios.js

69 lines
1.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import axios from "axios";
import {
ElMessage
} from "element-plus";
import router from "@/router/index";
import {
localSet,
localGet,
localRemove
} from "./index";
import config from "~/config";
import {
response
} from '../proto/data/pd';
axios.defaults.baseURL = config[
import.meta.env.MODE].baseUrl;
axios.defaults.withCredentials = true;
// 请求头headers 信息
axios.defaults.headers["X-Requested-With"] = "XMLHttpRequest";
axios.interceptors.request.use(
(req) => {
req.headers["cdcm"] = localGet("token");
return req;
}
);
axios.interceptors.response.use(
(res) => {
const token = res.headers["token"]
// 如果token不为空就缓存到本地
if (typeof (token) != "undefined") {
localSet("token", token);
}
const ret = response.decode(new Uint8Array(res.data));
// token过期
if (ret.code === 2003) {
localRemove("token");
ElMessage.closeAll();
ElMessage.error(ret.msg + "[" + new TextDecoder().decode(res.data) + "]" || "Token异常,请重新登录");
router.push({
path: "/login"
});
return Promise.reject(ret);
}
return ret
},
(error) => {
ElMessage.closeAll();
ElMessage.error(error);
router.push({
path: "/login"
});
return Promise.reject(error);
}
);
// post请求
export function postPBRequest(url, params, actionNum) {
return axios({
method: "post",
url: url,
data: params,
responseType: 'arraybuffer',
headers: {
"action": actionNum,
},
});
}