Files
CRMEB/template/admin/src/libs/request.js
evoxwht a24a96ab34 update
2026-01-23 11:41:13 +08:00

97 lines
2.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.
// +---------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +---------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +---------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +---------------------------------------------------------------------
// | Author: CRMEB Team <[email protected]>
// +---------------------------------------------------------------------
import axios from 'axios';
import { Message } from 'element-ui';
import { getCookies, removeCookies } from '@/libs/util';
import Setting from '@/setting';
import router from '@/router';
const service = axios.create({
baseURL: Setting.apiBaseURL,
timeout: 100000, // 请求超时时间
});
axios.defaults.withCredentials = true; // 携带cookie
// 请求拦截器
service.interceptors.request.use(
(config) => {
if (config.kefu) {
let baseUrl = Setting.apiBaseURL.replace(/adminapi/, 'kefuapi');
config.baseURL = baseUrl;
} else {
config.baseURL = Setting.apiBaseURL;
}
if (config.file) {
config.headers['Content-Type'] = 'multipart/form-data';
}
const token = getCookies('token');
const kefuToken = getCookies('kefu_token');
if (token || kefuToken) {
config.headers['Authori-zation'] = config.kefu ? 'Bearer ' + kefuToken : 'Bearer ' + token;
}
return config;
},
(error) => {
// do something with request error
return Promise.reject(error);
},
);
// response interceptor
service.interceptors.response.use(
(response) => {
let obj = {};
if (!!response.data) {
if (typeof response.data == 'string') {
obj = JSON.parse(response.data);
} else {
obj = response.data;
}
}
let status = response.data ? obj.status : 0;
// let status = response.data ? response.data.status : 0;
const code = status;
switch (code) {
case 200:
return obj;
case 110002:
case 110003:
case 110004:
localStorage.clear();
removeCookies('token');
removeCookies('expires_time');
removeCookies('uuid');
router.replace({ name: 'login' });
break;
case 110005:
case 110006:
case 110007:
removeCookies('kefuInfo');
removeCookies('kefu_token');
removeCookies('kefu_expires_time');
removeCookies('kefu_uuid');
router.replace({ path: '/kefu' });
break;
case 110008:
router.replace({ name: 'system_opendir_login' });
break;
default:
return Promise.reject(obj || { msg: '未知错误' });
}
},
(error) => {
Message.error(error.msg);
return Promise.reject(error);
},
);
export default service;