From 47dde458dec9f03586ce27fe08e9be66955ca039 Mon Sep 17 00:00:00 2001 From: zxj Date: Fri, 21 Nov 2025 10:33:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E8=A2=AB=E5=B5=8C?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2token=E8=BF=87=E6=9C=9F=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/xajax.js | 366 +++++++++++++++++++++++++-------------------- 1 file changed, 203 insertions(+), 163 deletions(-) diff --git a/src/utils/xajax.js b/src/utils/xajax.js index 38dc3f7a..862a4724 100644 --- a/src/utils/xajax.js +++ b/src/utils/xajax.js @@ -19,215 +19,255 @@ import errorCode from '@/utils/errorCode' //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'**/ //只是用于发送json对象数据时使用post,put,patch -const jsonRequest=axios.create({ - headers:{'Content-Type':'application/json;charset=utf-8'}, - // axios中请求配置有baseURL选项,表示请求URL公共部分 - baseURL: process.env.VUE_APP_BASE_API, - //超时 - timeout: 60000, +const jsonRequest = axios.create({ + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BASE_API, + //超时 + timeout: 60000, }); //发送json对象的拦截器 jsonRequest.interceptors.request.use(config => { - //是否需要设置 token - const isToken = (config.headers || {}).isToken === false - if (getToken() && !isToken) { - config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - return config + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config }, error => { - console.log(error) - Promise.reject(error) + console.log(error) + Promise.reject(error) }) // 响应拦截器 jsonRequest.interceptors.response.use(res => { - const code = res.data.status || 200; - if(code===200){ - return res.data - }else{ - if(code == 6001){ //针对于老系统的处理 - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code === 401){ - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code === 402){ - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - //return res.data; - }else if(code===302){ - location.href = ReLoginUrl; - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err:' + res.data.error); - //return Promise.reject(new Error(res.data.message)) - return res.data; + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code == 6001) { //针对于老系统的处理 + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 402) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + //return res.data; + } else if (code === 302) { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - //location.href = this.webBaseUrl + ReLoginUrl; - } - else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; - } - Message({ - message: message, - type: 'error', - duration: 5 * 1000 - }) - return Promise.reject(error) - } + // location.href = ReLoginUrl; + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err:' + res.data.error); + //return Promise.reject(new Error(res.data.message)) + return res.data; + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + //location.href = this.webBaseUrl + ReLoginUrl; + } + else if (message.includes("Request failed with status code")) { + message = "系统接口" + message.substr(message.length - 3) + "异常"; + } + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } ) //用于普通的发送请求 -const formRequest=axios.create({ - headers:{'Content-Type':'application/x-www-form-urlencoded'}, - // axios中请求配置有baseURL选项,表示请求URL公共部分 - baseURL: process.env.VUE_APP_BASE_API, - //超时 - timeout: 10000, +const formRequest = axios.create({ + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BASE_API, + //超时 + timeout: 10000, }) //发送json对象的拦截器 formRequest.interceptors.request.use(config => { - //是否需要设置 token - const isToken = (config.headers || {}).isToken === false - if (getToken() && !isToken) { - config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - return config + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config }, error => { - console.log(error) - Promise.reject(error) + console.log(error) + Promise.reject(error) }); formRequest.interceptors.response.use(res => { - const code = res.data.status || 200; - if(code===200){ - return res.data - }else{ - if(code == 6001){ //针对于老系统的处理,因为老系统是字符串,所以这里不使用三等于号 - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code === 401){ - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code === 402){ - store.dispatch('LogOut').then(() => { - location.href = ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else if(code===302){ - location.href = ReLoginUrl; - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - //return Promise.reject(new Error(res.data.message)) - return res.data;//返回给用户做业务处理 + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code == 6001) { //针对于老系统的处理,因为老系统是字符串,所以这里不使用三等于号 + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 402) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; + } + // location.href = ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else if (code === 302) { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = ReLoginUrl; + } else { + window.location.href = ReLoginUrl; } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - //location.href = this.webBaseUrl + ReLoginUrl; - } - else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; - } - Message({ - message: message, - type: 'error', - duration: 5 * 1000 - }) - return Promise.reject(error) - } + // location.href = ReLoginUrl; + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + //return Promise.reject(new Error(res.data.message)) + return res.data;//返回给用户做业务处理 + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + //location.href = this.webBaseUrl + ReLoginUrl; + } + else if (message.includes("Request failed with status code")) { + message = "系统接口" + message.substr(message.length - 3) + "异常"; + } + Message({ + message: message, + type: 'error', + duration: 5 * 1000 + }) + return Promise.reject(error) + } ) //request请求 -const request=function(cfg){ - if(cfg.data){ - cfg.data=qs.stringify(cfg.data); +const request = function (cfg) { + if (cfg.data) { + cfg.data = qs.stringify(cfg.data); } }; //requestJson请求 -const requestJson=jsonRequest.request; +const requestJson = jsonRequest.request; //get请求 -const get=formRequest.request; +const get = formRequest.request; //post请求 -const post=function(url,data,config){ - if(data){ - data=qs.stringify(data); +const post = function (url, data, config) { + if (data) { + data = qs.stringify(data); } - return formRequest.post(url,data,config); + return formRequest.post(url, data, config); } //post请求 -const postForm=function(url,data,config){ - return formRequest.post(url,data,config); +const postForm = function (url, data, config) { + return formRequest.post(url, data, config); } //postJson请求 -const postJson=jsonRequest.post; +const postJson = jsonRequest.post; //put请求 -const put=function(url,data,config){ - if(data){ - data=qs.stringify(data); +const put = function (url, data, config) { + if (data) { + data = qs.stringify(data); } - return formRequest.put(url,data,config); + return formRequest.put(url, data, config); } //putJson请求 -const putJson=jsonRequest.put; +const putJson = jsonRequest.put; //patch请求 -const patch=function(url,data,config){ - if(data){ - data=qs.stringify(data); +const patch = function (url, data, config) { + if (data) { + data = qs.stringify(data); } - return formRequest.patch(url,data,config); + return formRequest.patch(url, data, config); } //patchJson请求 -const patchJson=jsonRequest.patch; +const patchJson = jsonRequest.patch; //delete请求 -const del=formRequest.delete; +const del = formRequest.delete; export default { - request, - requestJson, - get, - post, - postJson, - put, - putJson, - patch, - patchJson, - del, - postForm + request, + requestJson, + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del, + postForm }