修改响应拦截,登录判断

dev
e 3 years ago
parent c2783fca08
commit 26c09c2e59
  1. 333
      src/utils/http.js
  2. 5
      src/views/Login.vue

@ -27,6 +27,7 @@ axios.interceptors.request.use(config => {
} }
return config; return config;
}, err => { }, err => {
console.log(err,'请求拦截30');
Message.error({ Message.error({
message: '退出登陆', message: '退出登陆',
onClose: function () { onClose: function () {
@ -37,67 +38,72 @@ axios.interceptors.request.use(config => {
}) })
// 响应拦截器 // 响应拦截器
// axios.interceptors.response.use( axios.interceptors.response.use(
// response => { response => {
// consol.log(response.status) if (response.status === 200) {
// if (response.status === 200) { return Promise.resolve(response);
// return Promise.resolve(response); } else {
// } else { Message.error(response.message,'res');
// return Promise.reject(response); console.log(response,'response',48);
// } return Promise.reject(response);
// }, }
// // 服务器状态码不是200的情况 },
// error => { // 服务器状态码不是200的情况
// if (error.response.status) { error => {
// switch (error.response.status) { if (error.response.status) {
// // 401: 未登录 switch (error.response.status) {
// // 未登录则跳转登录页面,并携带当前页面的路径 // 401: 未登录
// // 在登录成功后返回当前页面,这一步需要在登录页操作。 // 未登录则跳转登录页面,并携带当前页面的路径
// case 500: // 在登录成功后返回当前页面,这一步需要在登录页操作。
// router.replace({ case 401:
// path: '/login', Message.error('登录过期,请重新登录!');
// // query: { redirect: router.currentRoute.fullPath } setTimeout(() => {
// }); router.replace({
// break; path: '/login',
// // 403 token过期 query: {
// // 登录过期对用户进行提示 redirect: router.currentRoute.fullPath
// // 清除本地token和清空vuex中token对象 }
// // 跳转登录页面 });
// case 403: }, 1000);
// // Toast({ break;
// // message: '登录过期,请重新登录', // 403 token过期
// // duration: 1000, // 登录过期对用户进行提示
// // forbidClick: true // 清除本地token和清空vuex中token对象
// // }); // 跳转登录页面
// // 清除token case 403:
// sessionStorage.removeItem('token'); // 清除token
// store.commit('loginSuccess', null); sessionStorage.removeItem('token');
// // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 store.commit('loginSuccess', null);
// setTimeout(() => { // 跳转登录页面,并将要浏览的页面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({ // router.replace({
// path: '/login', // path: '/login',
// query: { // query: { redirect: router.currentRoute.fullPath }
// redirect: router.currentRoute.fullPath
// }
// });
// }, 1000);
// break;
// // 404请求不存在
// case 404:
// router.replace({
// path: '/404',
// });
// break;
// // 其他错误,直接抛出错误提示
// default:
// router.replace({
// path: '/500',
// }); // });
// } break;
// return Promise.reject(error.response); // 其他错误,直接抛出错误提示
// } default:
// } Message.error(error.response.data.message);
// ); break;
}
return Promise.reject(error.response);
}
}
);
function logouts(){ function logouts(){
@ -120,64 +126,10 @@ export function get(url, params){
params: params params: params
}) })
.then(res => { .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 => { .catch(err => {
reject(err.data) reject(err.data)
this.$message({
showClose: true,
message: '请求失败,请刷新页面重新进行请求',
type: 'error'
});
}) })
}); });
} }
@ -188,63 +140,11 @@ export function post(url, params) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
axios.post(url,params) axios.post(url,params)
.then(res => { .then(res => {
if (res.data.status) { return resolve(res.data);
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)
}
}) })
.catch(err => { .catch(err => {
reject(err.data) console.log(148,'err',err);
this.$message({ return reject(err.data)
showClose: true,
message: '请求失败,请刷新页面重新进行请求',
type: 'error'
});
}) })
}); });
} }
@ -258,61 +158,10 @@ export function post(url, params) {
params: params params: params
}) })
.then(res => { .then(res => {
if (res.data.status) {
switch (res.data.status) {
case 200:
resolve(res.data); 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)
}
}) })
.catch(err => { .catch(err => {
reject(err.data) reject(err.data)
this.$message({
showClose: true,
message: '请求失败,请刷新页面重新进行请求',
type: 'error'
});
}) })
}); });
} }
@ -326,58 +175,10 @@ export function put(url, params){
return new Promise((resolve, reject) =>{ return new Promise((resolve, reject) =>{
axios.put(url, params) axios.put(url, params)
.then(res => { .then(res => {
if (res.data.status) {
switch (res.data.status) {
case 200:
resolve(res.data); 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)
}
}) })
.catch(err => { .catch(err => {
reject(err.data) reject(err.data)
this.$message({
showClose: true,
message: '请求失败,请刷新页面重新进行请求',
type: 'error'
});
}) })
}); });
} }

@ -87,8 +87,9 @@ export default {
// //
// let user = res.message.retvalue // let user = res.message.retvalue
// this.$store.commit("userLoginData", { userLogin_id : user.userId,userName: user.userName,roleId: user.roleId}); // this.$store.commit("userLoginData", { userLogin_id : user.userId,userName: user.userName,roleId: user.roleId});
}).catch(res => { }).catch(err => {
this.$message.error(res.message) console.log(err,'reserr');
// this.$message.error(err.message)
}); });
} else { } else {
this.$message.error('请输入账号/密码/验证码'); this.$message.error('请输入账号/密码/验证码');

Loading…
Cancel
Save