fix:修复被嵌页面token过期不一致问题

This commit is contained in:
zxj
2025-11-21 10:33:35 +08:00
parent bf20eced9b
commit 47dde458de

View File

@@ -19,13 +19,13 @@ import errorCode from '@/utils/errorCode'
//const ReLoginUrl="/login"; //const ReLoginUrl="/login";
const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; const ReLoginUrl = process.env.VUE_APP_LOGIN_URL;
const TokenName='XBOE-Access-Token'; const TokenName = 'XBOE-Access-Token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
const jsonRequest=axios.create({ const jsonRequest = axios.create({
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
//超时 //超时
@@ -48,36 +48,56 @@ jsonRequest.interceptors.request.use(config => {
jsonRequest.interceptors.response.use(res => { jsonRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code == 6001){ //针对于老系统的处理 if (code == 6001) { //针对于老系统的处理
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code === 401){ } else if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code === 402){ } else if (code === 402) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code===403){ } else if (code === 403) {
var msg='当前操作没有权限'; var msg = '当前操作没有权限';
Message({message: msg, type: 'error'}); Message({ message: msg, type: 'error' });
return Promise.reject(new Error(msg)) return Promise.reject(new Error(msg))
//return res.data; //return res.data;
}else if(code===302){ } else if (code === 302) {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}else{ top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
} else {
//Message({message: res.data.message, type: 'error'}); //Message({message: res.data.message, type: 'error'});
//console.log('err:' + res.data.error); //console.log('err:' + res.data.error);
//return Promise.reject(new Error(res.data.message)) //return Promise.reject(new Error(res.data.message))
return res.data; return res.data;
} }
} }
}, },
error => { error => {
console.log('err' + error) console.log('err' + error)
let { message } = error; let { message } = error;
@@ -101,8 +121,8 @@ jsonRequest.interceptors.response.use(res => {
) )
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
headers:{'Content-Type':'application/x-www-form-urlencoded'}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
//超时 //超时
@@ -122,35 +142,55 @@ formRequest.interceptors.request.use(config => {
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code == 6001){ //针对于老系统的处理,因为老系统是字符串,所以这里不使用三等于号 if (code == 6001) { //针对于老系统的处理,因为老系统是字符串,所以这里不使用三等于号
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code === 401){ } else if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code === 402){ } else if (code === 402) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
}) })
}else if(code===403){ } else if (code === 403) {
var msg='当前操作没有权限'; var msg = '当前操作没有权限';
Message({message: msg, type: 'error'}); Message({ message: msg, type: 'error' });
return Promise.reject(new Error(msg)) return Promise.reject(new Error(msg))
}else if(code===302){ } else if (code === 302) {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}else{ top.location.href = ReLoginUrl;
} else {
window.location.href = ReLoginUrl;
}
// location.href = ReLoginUrl;
} else {
//Message({message: res.data.message, type: 'error'}); //Message({message: res.data.message, type: 'error'});
//console.log('err' + res.data.error); //console.log('err' + res.data.error);
//return Promise.reject(new Error(res.data.message)) //return Promise.reject(new Error(res.data.message))
return res.data;//返回给用户做业务处理 return res.data;//返回给用户做业务处理
} }
} }
}, },
error => { error => {
console.log('err' + error) console.log('err' + error)
let { message } = error; let { message } = error;
@@ -174,48 +214,48 @@ formRequest.interceptors.response.use(res => {
) )
//request请求 //request请求
const request=function(cfg){ const request = function (cfg) {
if(cfg.data){ if (cfg.data) {
cfg.data=qs.stringify(cfg.data); cfg.data = qs.stringify(cfg.data);
} }
}; };
//requestJson请求 //requestJson请求
const requestJson=jsonRequest.request; const requestJson = jsonRequest.request;
//get请求 //get请求
const get=formRequest.request; const get = formRequest.request;
//post请求 //post请求
const post=function(url,data,config){ const post = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.post(url,data,config); return formRequest.post(url, data, config);
} }
//post请求 //post请求
const postForm=function(url,data,config){ const postForm = function (url, data, config) {
return formRequest.post(url,data,config); return formRequest.post(url, data, config);
} }
//postJson请求 //postJson请求
const postJson=jsonRequest.post; const postJson = jsonRequest.post;
//put请求 //put请求
const put=function(url,data,config){ const put = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.put(url,data,config); return formRequest.put(url, data, config);
} }
//putJson请求 //putJson请求
const putJson=jsonRequest.put; const putJson = jsonRequest.put;
//patch请求 //patch请求
const patch=function(url,data,config){ const patch = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.patch(url,data,config); return formRequest.patch(url, data, config);
} }
//patchJson请求 //patchJson请求
const patchJson=jsonRequest.patch; const patchJson = jsonRequest.patch;
//delete请求 //delete请求
const del=formRequest.delete; const del = formRequest.delete;
export default { export default {