From 11e34ca335be72e769cef2590d3e1ce23d8ed7ec Mon Sep 17 00:00:00 2001 From: 670788339 <670788339@qq.com> Date: Wed, 19 Nov 2025 13:37:14 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=A0=87=E7=AD=BE-=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=BA=93=20=E8=AF=BE=E7=A8=8B=E5=90=8D=E7=A7=B0=E4=B8=8E?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E9=97=B4=E8=B7=9D=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/portal/course/Index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/portal/course/Index.vue b/src/views/portal/course/Index.vue index ef7d582b..9a5dd8ec 100644 --- a/src/views/portal/course/Index.vue +++ b/src/views/portal/course/Index.vue @@ -2590,7 +2590,7 @@ a.custom2 { } .course-tags { - margin: 5px 0; + margin: 10px 0 0; min-height: 20px; } From 3701605f7ad8fb2f523bddbeddb6e5d37b7299cb Mon Sep 17 00:00:00 2001 From: 670788339 <670788339@qq.com> Date: Wed, 19 Nov 2025 17:59:40 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=A0=87=E7=AD=BE-=E7=B2=BE=E5=93=81?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=BA=93=20=E8=AF=BE=E7=A8=8B=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=B8=8E=E6=A0=87=E7=AD=BE=E9=97=B4=E8=B7=9D=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/portal/course/qualityCourse.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/views/portal/course/qualityCourse.vue b/src/views/portal/course/qualityCourse.vue index 0eb3652f..5d11d367 100644 --- a/src/views/portal/course/qualityCourse.vue +++ b/src/views/portal/course/qualityCourse.vue @@ -2477,6 +2477,10 @@ export default { background-color: #f4f4f5; border-color: #e9e9eb; } +.course-tags { + margin: 10px 0 0; + min-height: 20px; +} .course-tags ::v-deep .el-tag .keyword-highlight, .course-tags ::v-deep .el-tag .exact-match-highlight { color: #387DF7 !important; From 47dde458dec9f03586ce27fe08e9be66955ca039 Mon Sep 17 00:00:00 2001 From: zxj Date: Fri, 21 Nov 2025 10:33:35 +0800 Subject: [PATCH 3/9] =?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 } From 4c453e397415da9b78617398c0db5463b797a058 Mon Sep 17 00:00:00 2001 From: zxj Date: Sat, 22 Nov 2025 14:28:58 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=E8=B7=B3=E8=BD=AC=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E8=A2=AB=E5=B5=8C=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ajax.js | 241 ++++++++++++++++--------------- src/api/boe/boeAjax.js | 231 ++++++++++++++--------------- src/api/boe/boeApiAjax.js | 296 ++++++++++++++++++++------------------ src/api/cesource/index.js | 286 ++++++++++++++++++------------------ src/api/event/index.js | 284 ++++++++++++++++++------------------ src/security.js | 109 +++++++------- src/views/Loading.vue | 101 ++++++------- 7 files changed, 799 insertions(+), 749 deletions(-) diff --git a/src/api/ajax.js b/src/api/ajax.js index 60face68..5c68ef1a 100644 --- a/src/api/ajax.js +++ b/src/api/ajax.js @@ -19,88 +19,93 @@ import errorCode from '@/utils/errorCode' // 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 /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ //只是用于发送json对象数据时使用post,put,patch //用于普通的发送请求 -const formRequest=axios.create({ - // headers:{'Content-Type':'application/x-www-form-urlencoded'}, - // axios中请求配置有baseURL选项,表示请求URL公共部分 - // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, - //超时 - timeout: 60000, - }) - //发送json对象的拦截器 - formRequest.interceptors.request.use(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) - }); - formRequest.interceptors.response.use(res => { - const code = res.data.status || 200; - if(code===200){ - return res.data - }else{ - if(code === 401){ - //Message({message: msg, type: 'error'}); - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - return res.data - } - } - }, - error => { +const formRequest = axios.create({ + // headers:{'Content-Type':'application/x-www-form-urlencoded'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, + //超时 + timeout: 60000, +}) +//发送json对象的拦截器 +formRequest.interceptors.request.use(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) +}); +formRequest.interceptors.response.use(res => { + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + //Message({message: msg, type: 'error'}); + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + return res.data + } + } +}, + error => { console.log('err' + error) let { message } = error; if (message == "Network Error") { - message = "网络异常,请稍后重试"; + message = "网络异常,请稍后重试"; } else if (message.includes("timeout")) { - message = "网络异常或接口错误,请求超时"; + message = "网络异常或接口错误,请求超时"; } else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; + message = "系统接口" + message.substr(message.length - 3) + "异常"; } Message({ - message: message, - type: 'error', - duration: 5 * 1000 + message: message, + type: 'error', + duration: 5 * 1000 }) return Promise.reject(error) - } - ) + } +) /** * request请求,可以自定义参数 */ -const request=formRequest.request; +const request = formRequest.request; /** * get请求 ,只有url */ -const get = function(baseURL,url){ - return request({ - baseURL, - url: url, - method: 'get', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }) +const get = function (baseURL, url) { + return request({ + baseURL, + url: url, + method: 'get', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) } /** @@ -108,61 +113,61 @@ const get = function(baseURL,url){ * @param {Object} url * @param {Object} postData */ -const post=function(baseURL,url,postData){ - if(postData){ - postData=qs.stringify(postData); +const post = function (baseURL, url, postData) { + if (postData) { + postData = qs.stringify(postData); } return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/x-www-form-urlencoded'} + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) } //post请求 -const postForm=function(baseURL,url,data){ - return request({ - baseURL, - url, - data, - method: 'post', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }); - } +const postForm = function (baseURL, url, data) { + return request({ + baseURL, + url, + data, + method: 'post', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }); +} // const postJson=jsonRequest.post; -const postJson=function(baseURL,url,postData){ +const postJson = function (baseURL, url, postData) { return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json;charset=utf-8'}, + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, }) } -const postPdf=function(baseURL,url,postData){ +const postPdf = function (baseURL, url, postData) { return request({ - baseURL, - url: url, - responseType: 'blob', - method: 'post', - data:postData, - headers:{'Content-Type':'application/pdf'}, + baseURL, + url: url, + responseType: 'blob', + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/pdf' }, }) } // 导出文件请求定义 -const postJsonToFile=function(baseURL,url,postData){ +const postJsonToFile = function (baseURL, url, postData) { return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json;charset=utf-8'}, - responseType: 'blob' + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + responseType: 'blob' }) } @@ -170,39 +175,39 @@ const postJsonToFile=function(baseURL,url,postData){ /** * put请求 */ -const put=function(baseURL,url,data){ - if(data){ - data=qs.stringify(data); +const put = function (baseURL, url, data) { + if (data) { + data = qs.stringify(data); } return request({ - baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/x-www-form-urlencoded'} + baseURL, + url: url, + method: 'put', + data: data, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) } -const putJson=function(baseURL,url,data){ +const putJson = function (baseURL, url, data) { return request({ - baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/json;charset=utf-8'}, + baseURL, + url: url, + method: 'put', + data: data, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, }) } export default { - tokenName:TokenName, - request, - get, - post, - postJson, - postJsonToFile, - put, - putJson, - postPdf, + tokenName: TokenName, + request, + get, + post, + postJson, + postJsonToFile, + put, + putJson, + postPdf, } diff --git a/src/api/boe/boeAjax.js b/src/api/boe/boeAjax.js index 3a46b791..c84b707f 100644 --- a/src/api/boe/boeAjax.js +++ b/src/api/boe/boeAjax.js @@ -19,90 +19,95 @@ import errorCode from '@/utils/errorCode' // const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; -const TokenName='token'; +const TokenName = 'token'; /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ //只是用于发送json对象数据时使用post,put,patch /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ //只是用于发送json对象数据时使用post,put,patch //用于普通的发送请求 -const formRequest=axios.create({ - // headers:{'Content-Type':'application/x-www-form-urlencoded'}, - // axios中请求配置有baseURL选项,表示请求URL公共部分 - // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, - //超时 - timeout: 10000, - }) - //发送json对象的拦截器 - formRequest.interceptors.request.use(config => { - //是否需要设置 token - const isToken = (config.headers || {}).isToken === false - let curToken=getToken(); - //curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c'; - if (curToken && !isToken) { - config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改 - } - return config - }, error => { - console.log(error) - Promise.reject(error) - }); - formRequest.interceptors.response.use(res => { - //console.log(res); - const code = res.data.status || 200; - if(code===200){ - return res.data - }else{ - if(code === 401){ - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - return res.data - } - } - }, - error => { - console.log('err',error) +const formRequest = axios.create({ + // headers:{'Content-Type':'application/x-www-form-urlencoded'}, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + // baseURL: process.env.VUE_APP_CESOURCE_BASE_API, + //超时 + timeout: 10000, +}) +//发送json对象的拦截器 +formRequest.interceptors.request.use(config => { + //是否需要设置 token + const isToken = (config.headers || {}).isToken === false + let curToken = getToken(); + //curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c'; + if (curToken && !isToken) { + config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { + console.log(error) + Promise.reject(error) +}); +formRequest.interceptors.response.use(res => { + //console.log(res); + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); + return res.data + } + } +}, + error => { + console.log('err', error) let { message } = error; if (message == "Network Error") { - message = "网络异常,请稍后重试"; + message = "网络异常,请稍后重试"; } else if (message.includes("timeout")) { - message = "网络异常或接口错误,请求超时"; + message = "网络异常或接口错误,请求超时"; } else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; + message = "系统接口" + message.substr(message.length - 3) + "异常"; } Message({ - message: message, - type: 'error', - duration: 5 * 1000 + message: message, + type: 'error', + duration: 5 * 1000 }) return Promise.reject(error) - } - ) + } +) /** * request请求,可以自定义参数 */ -const request=formRequest.request; +const request = formRequest.request; /** * get请求 ,只有url */ -const get = function(baseURL,url){ - return request({ - baseURL, - url: url, - method: 'get', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }) +const get = function (baseURL, url) { + return request({ + baseURL, + url: url, + method: 'get', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }) } /** @@ -110,49 +115,49 @@ const get = function(baseURL,url){ * @param {Object} url * @param {Object} postData */ -const post=function(baseURL,url,postData){ - if(postData){ - postData=qs.stringify(postData); +const post = function (baseURL, url, postData) { + if (postData) { + postData = qs.stringify(postData); } return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/x-www-form-urlencoded'} + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) } //post请求 -const postForm=function(baseURL,url,data){ - return request({ - baseURL, - url, - data, - method: 'post', - headers:{'Content-Type':'application/x-www-form-urlencoded'} - }); - } +const postForm = function (baseURL, url, data) { + return request({ + baseURL, + url, + data, + method: 'post', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }); +} // const postJson=jsonRequest.post; -const postJson=function(baseURL,url,postData){ +const postJson = function (baseURL, url, postData) { return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json'}, + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/json' }, }) } // 导出文件请求定义 -const postJsonToFile=function(baseURL,url,postData){ +const postJsonToFile = function (baseURL, url, postData) { return request({ - baseURL, - url: url, - method: 'post', - data:postData, - headers:{'Content-Type':'application/json;charset=utf-8'}, - responseType: 'blob' + baseURL, + url: url, + method: 'post', + data: postData, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + responseType: 'blob' }) } @@ -160,38 +165,38 @@ const postJsonToFile=function(baseURL,url,postData){ /** * put请求 */ -const put=function(baseURL,url,data){ - if(data){ - data=qs.stringify(data); +const put = function (baseURL, url, data) { + if (data) { + data = qs.stringify(data); } return request({ - baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/x-www-form-urlencoded'} + baseURL, + url: url, + method: 'put', + data: data, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) } -const putJson=function(baseURL,url,data){ +const putJson = function (baseURL, url, data) { return request({ - baseURL, - url: url, - method: 'put', - data:data, - headers:{'Content-Type':'application/json;charset=utf-8'}, + baseURL, + url: url, + method: 'put', + data: data, + headers: { 'Content-Type': 'application/json;charset=utf-8' }, }) } export default { - tokenName:TokenName, - request, - get, - post, - postJson, - postJsonToFile, - put, - putJson, + tokenName: TokenName, + request, + get, + post, + postJson, + postJsonToFile, + put, + putJson, } diff --git a/src/api/boe/boeApiAjax.js b/src/api/boe/boeApiAjax.js index 3134a91a..52f525bd 100644 --- a/src/api/boe/boeApiAjax.js +++ b/src/api/boe/boeApiAjax.js @@ -18,191 +18,201 @@ import errorCode from '@/utils/errorCode' *delete请求 axios.delete(url[, config]) */ -const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; -const TokenName='token'; +const ReLoginUrl = process.env.VUE_APP_LOGIN_URL; +const TokenName = '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_BOE_BASE_API, - //超时 - timeout: 10000, +const jsonRequest = axios.create({ + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BOE_BASE_API, + //超时 + timeout: 10000, }); //发送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 code1 = res.data.status || 200; - const code=parseInt(code1); - if(code===200){ - return res.data - }else{ - if(code == 6001){ //对方是字符串,所以这里不要使用三个等号 - 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{ - //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 code1 = res.data.status || 200; + const code = parseInt(code1); + 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 === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + //return res.data; + } 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_BOE_BASE_API, - //超时 - timeout: 10000, +const formRequest = axios.create({ + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_BOE_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===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }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 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 === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } 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); } //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 + request, + requestJson, + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del } diff --git a/src/api/cesource/index.js b/src/api/cesource/index.js index 5c950179..e863bb31 100644 --- a/src/api/cesource/index.js +++ b/src/api/cesource/index.js @@ -16,186 +16,196 @@ import errorCode from '@/utils/errorCode' *patchJson请求 axios.patch(url[, data[, config]]) *delete请求 axios.delete(url[, config]) */ - -const ReLoginUrl="/login"; -const TokenName='XBOE-Access-Token'; + +const ReLoginUrl = "/login"; +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_CESOURCE_BASE_API, - //超时 - timeout: 10000, +const jsonRequest = axios.create({ + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_CESOURCE_BASE_API, + //超时 + timeout: 10000, }); //发送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 === 401){ - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err:' + res.data.error); - return res.data; - //return Promise.reject(new Error(res.data.message)) - } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } - 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 code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err:' + res.data.error); + return res.data; + //return Promise.reject(new Error(res.data.message)) + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + } + 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_CESOURCE_BASE_API, - //超时 - timeout: 10000, +const formRequest = axios.create({ + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_CESOURCE_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){ + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); return res.data - }else{ - if(code === 401){ - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - return res.data - } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } - 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) - } + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + } + 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); } //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 + request, + requestJson, + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del } diff --git a/src/api/event/index.js b/src/api/event/index.js index 4e228a12..4200380c 100644 --- a/src/api/event/index.js +++ b/src/api/event/index.js @@ -17,185 +17,195 @@ import errorCode from '@/utils/errorCode' *delete请求 axios.delete(url[, config]) */ -const ReLoginUrl="/login"; -const TokenName='XBOE-Access-Token'; +const ReLoginUrl = "/login"; +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_STAT_BASE_API, - //超时 - timeout: 10000, +const jsonRequest = axios.create({ + headers: { 'Content-Type': 'application/json;charset=utf-8' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_STAT_BASE_API, + //超时 + timeout: 10000, }); //发送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 === 401){ - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err:' + res.data.error); - return res.data; - //return Promise.reject(new Error(res.data.message)) - } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } - 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 code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err:' + res.data.error); + return res.data; + //return Promise.reject(new Error(res.data.message)) + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + } + 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_STAT_BASE_API, - //超时 - timeout: 10000, +const formRequest = axios.create({ + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + // axios中请求配置有baseURL选项,表示请求URL公共部分 + baseURL: process.env.VUE_APP_STAT_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){ + const code = res.data.status || 200; + if (code === 200) { + return res.data + } else { + if (code === 401) { + store.dispatch('LogOut').then(() => { + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = this.webBaseUrl + ReLoginUrl; + } else { + window.location.href = this.webBaseUrl + ReLoginUrl; + } + // location.href = this.webBaseUrl + ReLoginUrl; + }) + } else if (code === 403) { + var msg = '当前操作没有权限'; + Message({ message: msg, type: 'error' }); + return Promise.reject(new Error(msg)) + } else { + //Message({message: res.data.message, type: 'error'}); + //console.log('err' + res.data.error); return res.data - }else{ - if(code === 401){ - store.dispatch('LogOut').then(() => { - location.href = this.webBaseUrl + ReLoginUrl; - }) - }else if(code===403){ - var msg='当前操作没有权限'; - Message({message: msg, type: 'error'}); - return Promise.reject(new Error(msg)) - }else{ - //Message({message: res.data.message, type: 'error'}); - //console.log('err' + res.data.error); - return res.data - } - } - }, - error => { - console.log('err' + error) - let { message } = error; - if (message == "Network Error") { - message = "网络异常,请稍后重试"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } - 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) - } + } + } +}, + error => { + console.log('err' + error) + let { message } = error; + if (message == "Network Error") { + message = "网络异常,请稍后重试"; + } + else if (message.includes("timeout")) { + message = "系统接口请求超时"; + } + 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); } //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 + request, + requestJson, + get, + post, + postJson, + put, + putJson, + patch, + patchJson, + del } diff --git a/src/security.js b/src/security.js index 9788cc03..9c77d133 100644 --- a/src/security.js +++ b/src/security.js @@ -11,16 +11,16 @@ import xpage from '@/utils/xpage' NProgress.configure({ showSpinner: false }) -const whiteList = ['/login','/logout','/loading','/pc/loading','/500','/auth-redirect','/forget','/reset/password'] +const whiteList = ['/login', '/logout', '/loading', '/pc/loading', '/500', '/auth-redirect', '/forget', '/reset/password'] router.beforeEach((to, from, next) => { watermark.set(""); //动态计算文件的路径 - let configPath=process.env.VUE_APP_FILE_RELATIVE_PATH; - if(configPath.startsWith('http')){ - xpage.constants.fileBaseUrl=configPath; - }else{ - xpage.constants.fileBaseUrl=window.location.protocol+'//'+window.location.host+configPath; + let configPath = process.env.VUE_APP_FILE_RELATIVE_PATH; + if (configPath.startsWith('http')) { + xpage.constants.fileBaseUrl = configPath; + } else { + xpage.constants.fileBaseUrl = window.location.protocol + '//' + window.location.host + configPath; } NProgress.start(); @@ -28,66 +28,71 @@ router.beforeEach((to, from, next) => { if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 next() - }else{ - if(getToken()){ - if(to.path === '/login'){ + } else { + if (getToken()) { + if (to.path === '/login') { // 如果是外部用户,把配置的路由跳转到个人中心 - if(store.getters.userInfo.role === 2){ - next({ path: process.env.VUE_APP_PUBLIC_PATH+'/uc/study/courses' }) - }else{ - next({ path: process.env.VUE_APP_PUBLIC_PATH+'/index' }) + if (store.getters.userInfo.role === 2) { + next({ path: process.env.VUE_APP_PUBLIC_PATH + '/uc/study/courses' }) + } else { + next({ path: process.env.VUE_APP_PUBLIC_PATH + '/index' }) } NProgress.done(); } else { //console.log('store.getters.userInfo:',store.getters.userInfo.role) // 如果是外部用户,把配置的路由跳转到个人中心 - if(store.getters.userInfo.role === 2){ - if(to.path === '/index' || to.path === '/course' || to.path === '/case' || to.path === '/article' ) location.href = '/pc/uc/study/task' + if (store.getters.userInfo.role === 2) { + if (to.path === '/index' || to.path === '/course' || to.path === '/case' || to.path === '/article') location.href = '/pc/uc/study/task' } //后续这里需要增加一定的控制 - if (!store.getters.init) { - sessionStorage.removeItem(xpage.constants.localCaseFiltersKey); - sessionStorage.removeItem(xpage.constants.localCourseFiltersKey); - // 判断当前控制台是否已拉取完数据 - store.dispatch('InitData').then(res => { - //加载白名单信息 - //testUser.init(); - //加载信息资源归属,系统分类信息 - store.dispatch('resOwner/loadResOwners'); - store.dispatch('sysType/loadSysTypes'); + if (!store.getters.init) { + sessionStorage.removeItem(xpage.constants.localCaseFiltersKey); + sessionStorage.removeItem(xpage.constants.localCourseFiltersKey); + // 判断当前控制台是否已拉取完数据 + store.dispatch('InitData').then(res => { + //加载白名单信息 + //testUser.init(); + //加载信息资源归属,系统分类信息 + store.dispatch('resOwner/loadResOwners'); + store.dispatch('sysType/loadSysTypes'); - store.commit('app/SET_INITDATA',true); - //routers数据先使用固定的,以后在初始化接口中返回 - let myRouters=routers(); - store.dispatch('GenerateRoutes',{routers:myRouters}).then(accessRoutes=>{ - router.addRoutes(accessRoutes) // 动态添加可访问路由表 - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 - }); + store.commit('app/SET_INITDATA', true); + //routers数据先使用固定的,以后在初始化接口中返回 + let myRouters = routers(); + store.dispatch('GenerateRoutes', { routers: myRouters }).then(accessRoutes => { + router.addRoutes(accessRoutes) // 动态添加可访问路由表 + next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + }); - }).catch(err => { - console.log(err); - store.commit('app/SET_INITDATA',false); - //如果初始化错误,就不再执行了,不然会一直循环下去 - next({ path: '/500' }) - //NProgress.done(); - }) - } else { - to.meta.keepAlive = true - next(); - } + }).catch(err => { + console.log(err); + store.commit('app/SET_INITDATA', false); + //如果初始化错误,就不再执行了,不然会一直循环下去 + next({ path: '/500' }) + //NProgress.done(); + }) + } else { + to.meta.keepAlive = true + next(); + } } //next(); - }else{ + } else { - //next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - //设置之前的路径 - //store.commit('portal/SetBackUrl',location.href); - //console.log(location.href,'location.href'); - //let urlPre=window.location.protocol+'//'+window.location.host; - //let backUrl=location.href.substring(urlPre.length); encodeURIComponent() - location.href=process.env.VUE_APP_LOGIN_URL+"?returnUrl="+encodeURIComponent(location.href); - NProgress.done() + //next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 + //设置之前的路径 + //store.commit('portal/SetBackUrl',location.href); + //console.log(location.href,'location.href'); + //let urlPre=window.location.protocol+'//'+window.location.host; + //let backUrl=location.href.substring(urlPre.length); encodeURIComponent() + if (top !== window) { // 判断当前是否在iframe内 + top.location.href = process.env.VUE_APP_LOGIN_URL + "?returnUrl=" + encodeURIComponent(location.href); + } else { + window.location.href = process.env.VUE_APP_LOGIN_URL + "?returnUrl=" + encodeURIComponent(location.href); + } + // location.href=process.env.VUE_APP_LOGIN_URL+"?returnUrl="+encodeURIComponent(location.href); + NProgress.done() } } diff --git a/src/views/Loading.vue b/src/views/Loading.vue index 7fa95cec..28f23a28 100644 --- a/src/views/Loading.vue +++ b/src/views/Loading.vue @@ -5,56 +5,61 @@ From 8c2f128578fb1f1e0fdaef4b94b949c58d1cfd38 Mon Sep 17 00:00:00 2001 From: zxj Date: Tue, 25 Nov 2025 18:53:35 +0800 Subject: [PATCH 8/9] =?UTF-8?q?fix:=E5=9B=9E=E6=BB=9A=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=A0=A1=E9=AA=8C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/portal/case/Detail.vue | 28 ++++++++++++++++------------ src/views/study/coursenew.vue | 30 +++++++++++++++++------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/views/portal/case/Detail.vue b/src/views/portal/case/Detail.vue index 0d660168..7ccef57f 100644 --- a/src/views/portal/case/Detail.vue +++ b/src/views/portal/case/Detail.vue @@ -563,22 +563,26 @@ export default { xmlhttp.abort(); }, 5000); // 1. 拼接随机参数(时间戳+随机数,确保URL唯一,破缓存) - const url = - window.location.protocol + - "//uapi.boe.com.cn/500.html?t=" + - Date.now() + - Math.random(); + // const url = + // window.location.protocol + + // "//uapi.boe.com.cn/500.html?t=" + + // Date.now() + + // Math.random(); // 2. 打开 HEAD 请求(URL已带随机参数) - xmlhttp.open("HEAD", url, true); + //xmlhttp.open("HEAD", url, true); // 3. 设置禁用缓存的请求头(覆盖现代浏览器+老IE+代理) - xmlhttp.setRequestHeader( - "Cache-Control", - "no-cache, no-store, must-revalidate" + // xmlhttp.setRequestHeader( + // "Cache-Control", + // "no-cache, no-store, must-revalidate" + // ); + // xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 + // xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 + xmlhttp.open( + "HEAD", + window.location.protocol + "//uapi.boe.com.cn/500.html", + true ); - xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 - xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 - // xmlhttp.open("HEAD", window.location.protocol + "//uapi.boe.com.cn/500.html", true); xmlhttp.send(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index cfcb143f..5fb4c8fb 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -1965,22 +1965,26 @@ export default { xmlhttp.abort(); }, 1000); // 1. 拼接随机参数(时间戳+随机数,确保URL唯一,破缓存) - const url = - window.location.protocol + - "//uapi.boe.com.cn/500.html?t=" + - Date.now() + - Math.random(); - // 2. 打开 HEAD 请求(URL已带随机参数) - xmlhttp.open("HEAD", url, true); + // const url = + // window.location.protocol + + // "//uapi.boe.com.cn/500.html?t=" + + // Date.now() + + // Math.random(); + // // 2. 打开 HEAD 请求(URL已带随机参数) + // xmlhttp.open("HEAD", url, true); // 3. 设置禁用缓存的请求头(覆盖现代浏览器+老IE+代理) - xmlhttp.setRequestHeader( - "Cache-Control", - "no-cache, no-store, must-revalidate" + // xmlhttp.setRequestHeader( + // "Cache-Control", + // "no-cache, no-store, must-revalidate" + // ); + // xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 + // xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 + xmlhttp.open( + "HEAD", + window.location.protocol + "//uapi.boe.com.cn/500.html", + true ); - xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 - xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 - // xmlhttp.open("HEAD", window.location.protocol + "//uapi.boe.com.cn/500.html", true); xmlhttp.send(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { From da72c156e99e5d86113c854290d30ace1c4cab78 Mon Sep 17 00:00:00 2001 From: zxj Date: Thu, 27 Nov 2025 12:19:47 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=A1=88=E4=BE=8B?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=A0=A1=E9=AA=8C=E6=90=BA=E5=B8=A6=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/portal/case/Detail.vue | 28 ++++++++++------------------ src/views/study/coursenew.vue | 28 ++++++++++------------------ 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/src/views/portal/case/Detail.vue b/src/views/portal/case/Detail.vue index 7ccef57f..c051c89c 100644 --- a/src/views/portal/case/Detail.vue +++ b/src/views/portal/case/Detail.vue @@ -563,26 +563,18 @@ export default { xmlhttp.abort(); }, 5000); // 1. 拼接随机参数(时间戳+随机数,确保URL唯一,破缓存) - // const url = - // window.location.protocol + - // "//uapi.boe.com.cn/500.html?t=" + - // Date.now() + - // Math.random(); + const url = + window.location.protocol + + "//uapi.boe.com.cn/500.html?t=" + + Date.now() + + Math.random(); // 2. 打开 HEAD 请求(URL已带随机参数) - //xmlhttp.open("HEAD", url, true); - - // 3. 设置禁用缓存的请求头(覆盖现代浏览器+老IE+代理) - // xmlhttp.setRequestHeader( - // "Cache-Control", - // "no-cache, no-store, must-revalidate" + xmlhttp.open("HEAD", url, true); + // xmlhttp.open( + // "HEAD", + // window.location.protocol + "//uapi.boe.com.cn/500.html", + // true // ); - // xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 - // xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 - xmlhttp.open( - "HEAD", - window.location.protocol + "//uapi.boe.com.cn/500.html", - true - ); xmlhttp.send(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index 5fb4c8fb..3d79b795 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -1965,26 +1965,18 @@ export default { xmlhttp.abort(); }, 1000); // 1. 拼接随机参数(时间戳+随机数,确保URL唯一,破缓存) - // const url = - // window.location.protocol + - // "//uapi.boe.com.cn/500.html?t=" + - // Date.now() + - // Math.random(); + const url = + window.location.protocol + + "//uapi.boe.com.cn/500.html?t=" + + Date.now() + + Math.random(); // // 2. 打开 HEAD 请求(URL已带随机参数) - // xmlhttp.open("HEAD", url, true); - - // 3. 设置禁用缓存的请求头(覆盖现代浏览器+老IE+代理) - // xmlhttp.setRequestHeader( - // "Cache-Control", - // "no-cache, no-store, must-revalidate" + xmlhttp.open("HEAD", url, true); + // xmlhttp.open( + // "HEAD", + // window.location.protocol + "//uapi.boe.com.cn/500.html", + // true // ); - // xmlhttp.setRequestHeader("Pragma", "no-cache"); // IE兼容 - // xmlhttp.setRequestHeader("Expires", "0"); // 禁止过期缓存复用 - xmlhttp.open( - "HEAD", - window.location.protocol + "//uapi.boe.com.cn/500.html", - true - ); xmlhttp.send(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) {