Browse Source

支持是否需要设置token属性,自定义返回码消息。

RuoYi 4 năm trước cách đây
mục cha
commit
25b114aae7

+ 6 - 0
ruoyi-ui/src/utils/errorCode.js

@@ -0,0 +1,6 @@
+export default {
+  '401': '认证失败,无法访问系统资源',
+  '403': '当前操作没有权限',
+  '404': '访问资源不存在',
+  'default': '系统未知错误,请反馈给管理员'
+}

+ 21 - 12
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 {

+ 1 - 0
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;