Files
integral-shop/backend-adminend/src/utils/requestNoAuth.js

52 lines
1.4 KiB
JavaScript
Raw Normal View History

/**
* 免认证 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;