From 26c09c2e590906a281fd838abc9b2b4f4b59be24 Mon Sep 17 00:00:00 2001 From: e <2432808546@qq.com> Date: Thu, 8 Jul 2021 21:01:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=93=8D=E5=BA=94=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=EF=BC=8C=E7=99=BB=E5=BD=95=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/http.js | 347 ++++++++++---------------------------------- src/views/Login.vue | 5 +- 2 files changed, 77 insertions(+), 275 deletions(-) diff --git a/src/utils/http.js b/src/utils/http.js index f4ca13b..c635883 100644 --- a/src/utils/http.js +++ b/src/utils/http.js @@ -26,7 +26,8 @@ axios.interceptors.request.use(config => { config.headers.token = token } return config; - }, err => { +}, err => { + console.log(err,'请求拦截30'); Message.error({ message: '退出登陆', onClose: function () { @@ -37,67 +38,72 @@ axios.interceptors.request.use(config => { }) // 响应拦截器 -// axios.interceptors.response.use( -// response => { -// consol.log(response.status) -// if (response.status === 200) { -// return Promise.resolve(response); -// } else { -// return Promise.reject(response); -// } -// }, -// // 服务器状态码不是200的情况 -// error => { -// if (error.response.status) { -// switch (error.response.status) { -// // 401: 未登录 -// // 未登录则跳转登录页面,并携带当前页面的路径 -// // 在登录成功后返回当前页面,这一步需要在登录页操作。 -// case 500: -// router.replace({ -// path: '/login', -// // query: { redirect: router.currentRoute.fullPath } -// }); -// break; -// // 403 token过期 -// // 登录过期对用户进行提示 -// // 清除本地token和清空vuex中token对象 -// // 跳转登录页面 -// case 403: -// // Toast({ -// // message: '登录过期,请重新登录', -// // duration: 1000, -// // forbidClick: true -// // }); -// // 清除token -// sessionStorage.removeItem('token'); -// store.commit('loginSuccess', null); -// // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 -// setTimeout(() => { -// router.replace({ -// path: '/login', -// query: { -// redirect: router.currentRoute.fullPath -// } -// }); -// }, 1000); -// break; -// // 404请求不存在 -// case 404: -// router.replace({ -// path: '/404', -// }); -// break; -// // 其他错误,直接抛出错误提示 -// default: -// router.replace({ -// path: '/500', -// }); -// } -// return Promise.reject(error.response); -// } -// } -// ); +axios.interceptors.response.use( + response => { + if (response.status === 200) { + return Promise.resolve(response); + } else { + Message.error(response.message,'res'); + console.log(response,'response',48); + return Promise.reject(response); + } + }, + // 服务器状态码不是200的情况 + error => { + if (error.response.status) { + switch (error.response.status) { + // 401: 未登录 + // 未登录则跳转登录页面,并携带当前页面的路径 + // 在登录成功后返回当前页面,这一步需要在登录页操作。 + case 401: + Message.error('登录过期,请重新登录!'); + setTimeout(() => { + router.replace({ + path: '/login', + query: { + redirect: router.currentRoute.fullPath + } + }); + }, 1000); + break; + // 403 token过期 + // 登录过期对用户进行提示 + // 清除本地token和清空vuex中token对象 + // 跳转登录页面 + case 403: + // 清除token + sessionStorage.removeItem('token'); + store.commit('loginSuccess', null); + // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 + setTimeout(() => { + router.replace({ + path: '/login', + query: { + redirect: router.currentRoute.fullPath + } + }); + }, 1000); + break; + // 404请求不存在 + case 404: + Message.error('404网络请求不存在!'); + break; + case 500:// 网络错误 + Message.error('网络错误!'); + // router.replace({ + // path: '/login', + // query: { redirect: router.currentRoute.fullPath } + // }); + break; + // 其他错误,直接抛出错误提示 + default: + Message.error(error.response.data.message); + break; + } + return Promise.reject(error.response); + } + } +); function logouts(){ @@ -120,64 +126,10 @@ export function get(url, params){ params: params }) .then(res => { - if(typeof res.data == 'number'){ - this.$message.error(tokenStatus[res.data]) - setTimeout(logouts,1500) - return false - } - if (res.data.status) { - switch (res.data.status) { - case 200: - resolve(res.data); - break; - case 10000: - resolve(res.data); - break; - case 500: - reject(res.data) - break - case 300: - this.$message.error( - res.data.errmessage - ); - break; - case 404: - this.$message.error( - res.data.errmessage - ); - break; - case 403: - this.$message.error( - res.data.errmessage - ); - break; - case 401: - Message.error("token失效,请重新登录"); - sessionStorage.removeItem('token'); - router.replace('/login') - break; - case 405: - this.$message.error( - res.data.errmessage - ); - break; - case 406: - this.$message.error( - res.data.errmessage - ); - break; - } - }else{ - resolve(res.data) - } + resolve(res.data) }) .catch(err => { reject(err.data) - this.$message({ - showClose: true, - message: '请求失败,请刷新页面重新进行请求', - type: 'error' - }); }) }); } @@ -188,63 +140,11 @@ export function post(url, params) { return new Promise((resolve, reject) => { axios.post(url,params) .then(res => { - if (res.data.status) { - switch (res.data.status) { - case 200: - resolve(res.data); - break; - case 500: - this.$message.error( - res.data.errmessage - ); - break; - case 300: - this.$message.error( - res.data.errmessage - ); - break; - case 404: - this.$message.error( - res.data.errmessage - ); - break; - case 403: - this.$message.error( - res.data.errmessage - ); - break; - case 401: - Message.error("token失效,请重新登录"); - sessionStorage.removeItem('token'); - router.replace('/login') - break; - case 405: - this.$message.error( - res.data.errmessage - ); - break; - case 406: - this.$message.error( - res.data.errmessage - ); - break; - case 10001: - this.$message.error( - res.data.message - ); - break; - } - }else{ - resolve(res.data) - } + return resolve(res.data); }) .catch(err => { - reject(err.data) - this.$message({ - showClose: true, - message: '请求失败,请刷新页面重新进行请求', - type: 'error' - }); + console.log(148,'err',err); + return reject(err.data) }) }); } @@ -258,61 +158,10 @@ export function post(url, params) { params: params }) .then(res => { - if (res.data.status) { - switch (res.data.status) { - case 200: - resolve(res.data); - break; - // case 300: - // this.$message.error( - // res.data.errmessage - // ); - // break; - case 500: - this.$message.error( - res.data.errmessage - ); - break; - case 404: - this.$message.error( - res.data.errmessage - ); - // router.replace({ - // path: '/404', - // }); - break; - case 403: - this.$message.error( - res.data.errmessage - ); - break; - case 401: - Message.error("token失效,请重新登录"); - sessionStorage.removeItem('token'); - router.replace('/login') - break; - case 405: - this.$message.error( - res.data.errmessage - ); - break; - case 406: - this.$message.error( - res.data.errmessage - ); - break; - } - }else{ - resolve(res.data) - } + resolve(res.data); }) .catch(err => { reject(err.data) - this.$message({ - showClose: true, - message: '请求失败,请刷新页面重新进行请求', - type: 'error' - }); }) }); } @@ -326,58 +175,10 @@ export function put(url, params){ return new Promise((resolve, reject) =>{ axios.put(url, params) .then(res => { - if (res.data.status) { - switch (res.data.status) { - case 200: - resolve(res.data); - break; - case 300: - this.$message.error( - res.data.errmessage - ); - break; - case 500: - this.$message.error( - res.data.errmessage - ); - break; - case 404: - this.$message.error( - res.data.errmessage - ); - break; - case 403: - this.$message.error( - res.data.errmessage - ); - break; - case 401: - Message.error("token失效,请重新登录"); - sessionStorage.removeItem('token'); - router.replace('/login') - break; - case 405: - this.$message.error( - res.data.errmessage - ); - break; - case 406: - this.$message.error( - res.data.errmessage - ); - break; - } - }else{ - resolve(res.data) - } + resolve(res.data); }) .catch(err => { reject(err.data) - this.$message({ - showClose: true, - message: '请求失败,请刷新页面重新进行请求', - type: 'error' - }); }) }); } \ No newline at end of file diff --git a/src/views/Login.vue b/src/views/Login.vue index a2fa503..8068804 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -87,8 +87,9 @@ export default { // 作用未知,暂时注释 // let user = res.message.retvalue // this.$store.commit("userLoginData", { userLogin_id : user.userId,userName: user.userName,roleId: user.roleId}); - }).catch(res => { - this.$message.error(res.message) + }).catch(err => { + console.log(err,'reserr'); + // this.$message.error(err.message) }); } else { this.$message.error('请输入账号/密码/验证码');