Files
FT517-WCS/ruoyi-ui/public/monitor/js/request.js
猫猫guowen 3071c572ff 2D监控
2025-09-28 16:50:02 +08:00

53 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 1. 直接使用 CDN 全局的 axios
const axios = window.axios;
// 2. 基础配置(无 export 语句)
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
const service = axios.create({
baseURL: '/', // 匹配若依代理,无需改
timeout: 10000
});
// 3. request 拦截器(删除所有依赖若依工具的代码)
service.interceptors.request.use(config => {
// 从 cookie 取若依的 Admin-Token(确保登录状态)
const token = document.cookie.replace(/(?:(?:^|.*;\s*)Admin-Token\s*=\s*([^;]*).*$)|^.*$/, '$1');
if (token) {
config.headers['Authorization'] = 'Bearer ' + token;
}
return config;
}, error => {
console.log(error);
return Promise.reject(error); // 必须加 return,否则吞错误
});
// 4. response 拦截器(简化,无 element-ui 依赖)
service.interceptors.response.use(res => {
// 二进制数据直接返回(如需下载可保留)
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res.data;
}
// 状态码处理(用原生 alert 替代弹窗)
const code = res.data.code || 200;
if (code === 401) {
alert('登录过期,请重新登录若依系统');
return Promise.reject('登录过期');
} else if (code !== 200) {
alert('接口失败:' + (res.data.msg || '未知错误'));
return Promise.reject('接口错误');
} else {
return res.data; // 若依接口返回的 data 已处理,直接返回
}
}, error => {
// 错误提示(原生 alert)
let msg = error.message;
if (msg === "Network Error") msg = "后端连接异常";
else if (msg.includes("timeout")) msg = "请求超时";
else if (msg.includes("status code")) msg = "接口" + msg.substr(-3) + "异常";
alert(msg);
return Promise.reject(error);
});
// 5. 核心:挂载到全局 window,无任何 export
window.request = service;