From 25b114aae7e9efb2bc54cca8a5875237bc3da694 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期一, 18 五月 2020 14:27:15 +0800
Subject: [PATCH] 支持是否需要设置token属性,自定义返回码消息。
---
ruoyi-ui/src/utils/request.js | 33 +++++++++++++++++++++------------
ruoyi-ui/src/utils/errorCode.js | 6 ++++++
ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java | 1 +
3 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/ruoyi-ui/src/utils/errorCode.js b/ruoyi-ui/src/utils/errorCode.js
new file mode 100644
index 0000000..d2111ee
--- /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 4ea9568..cac52c3 100644
--- a/ruoyi-ui/src/utils/request.js
+++ b/ruoyi-ui/src/utils/request.js
@@ -2,6 +2,7 @@
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 @@
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 @@
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 ccc60a3..cb9b7d0 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 @@
{
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
+ rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
--
Gitblit v1.9.2