From 25b114aae7e9efb2bc54cca8a5875237bc3da694 Mon Sep 17 00:00:00 2001 From: RuoYi Date: Mon, 18 May 2020 14:27:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=AF=E5=90=A6=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E8=AE=BE=E7=BD=AEtoken=E5=B1=9E=E6=80=A7=EF=BC=8C?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=BF=94=E5=9B=9E=E7=A0=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/utils/errorCode.js | 6 ++++ ruoyi-ui/src/utils/request.js | 33 ++++++++++++------- .../web/controller/BaseController.java | 1 + 3 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 ruoyi-ui/src/utils/errorCode.js diff --git a/ruoyi-ui/src/utils/errorCode.js b/ruoyi-ui/src/utils/errorCode.js new file mode 100644 index 000000000..d2111ee10 --- /dev/null +++ b/ruoyi-ui/src/utils/errorCode.js @@ -0,0 +1,6 @@ +export default { + '401': '认证失败,无法访问系统资源', + '403': '当前操作没有权限', + '404': '访问资源不存在', + 'default': '系统未知错误,请反馈给管理员' +} diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index 4ea9568a3..cac52c34d 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -2,6 +2,7 @@ import axios from 'axios' import { Notification, MessageBox, Message } from 'element-ui' import store from '@/store' import { getToken } from '@/utils/auth' +import errorCode from '@/utils/errorCode' axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' // 创建axios实例 @@ -12,22 +13,24 @@ const service = axios.create({ timeout: 10000 }) // request拦截器 -service.interceptors.request.use( - config => { - if (getToken()) { - config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - return config - }, - error => { +service.interceptors.request.use(config => { + // 是否需要设置 token + const isToken = (config.headers || {}).isToken === false + if (getToken() && !isToken) { + config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + } + return config +}, error => { console.log(error) Promise.reject(error) - } -) +}) // 响应拦截器 service.interceptors.response.use(res => { - const code = res.data.code + // 未设置状态码则默认成功状态 + const code = res.data.code || 200; + // 获取错误信息 + const message = errorCode[code] || res.data.msg || errorCode['default'] if (code === 401) { MessageBox.confirm( '登录状态已过期,您可以继续留在该页面,或者重新登录', @@ -42,9 +45,15 @@ service.interceptors.response.use(res => { location.reload() // 为了重新实例化vue-router对象 避免bug }) }) + } else if (code === 500) { + Message({ + message: message, + type: 'error' + }) + return Promise.reject(new Error(message)) } else if (code !== 200) { Notification.error({ - title: res.data.msg + title: message }) return Promise.reject('error') } else { diff --git a/ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java b/ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java index ccc60a37d..cb9b7d0c5 100644 --- a/ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java +++ b/ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java @@ -67,6 +67,7 @@ public class BaseController { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); rspData.setRows(list); rspData.setTotal(new PageInfo(list).getTotal()); return rspData;