/** * 免认证 Axios 实例 * 供积分外部页面(/integral-external/*)使用。 * 不注入 Authori-zation token,不拦截 401 自动跳转登录页。 */ import axios from 'axios'; import { Message } from 'element-ui'; import SettingMer from '@/utils/settingMer'; const service = axios.create({ baseURL: SettingMer.apiBaseURL, timeout: 60000, }); // 请求拦截器 — 不注入 token service.interceptors.request.use( (config) => { // GET 请求防缓存 if (/get/i.test(config.method)) { config.params = config.params || {}; config.params.temp = Date.parse(new Date()) / 1000; } return config; }, (error) => Promise.reject(error), ); // 响应拦截器 — 不拦截 401 跳转 service.interceptors.response.use( (response) => { const res = response.data; if (res.code !== 0 && res.code !== 200) { Message({ message: res.msg || res.message || '请求失败', type: 'error', duration: 5 * 1000, }); return Promise.reject(new Error(res.msg || '请求失败')); } return res.data; }, (error) => { const msg = error.response ? `网络请求失败 (${error.response.status})` : '网络连接失败,请检查服务器是否启动'; Message({ message: msg, type: 'error', duration: 5 * 1000 }); return Promise.reject(error); }, ); export default service;