Commit 25b114aae7e9efb2bc54cca8a5875237bc3da694
1 parent
5434ceb1
支持是否需要设置token属性,自定义返回码消息。
Showing
3 changed files
with
28 additions
and
12 deletions
ruoyi-ui/src/utils/errorCode.js
0 → 100644
ruoyi-ui/src/utils/request.js
| ... | ... | @@ -2,6 +2,7 @@ import axios from 'axios' |
| 2 | 2 | import { Notification, MessageBox, Message } from 'element-ui' |
| 3 | 3 | import store from '@/store' |
| 4 | 4 | import { getToken } from '@/utils/auth' |
| 5 | +import errorCode from '@/utils/errorCode' | |
| 5 | 6 | |
| 6 | 7 | axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' |
| 7 | 8 | // 创建axios实例 |
| ... | ... | @@ -12,22 +13,24 @@ const service = axios.create({ |
| 12 | 13 | timeout: 10000 |
| 13 | 14 | }) |
| 14 | 15 | // request拦截器 |
| 15 | -service.interceptors.request.use( | |
| 16 | - config => { | |
| 17 | - if (getToken()) { | |
| 18 | - config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 | |
| 19 | - } | |
| 20 | - return config | |
| 21 | - }, | |
| 22 | - error => { | |
| 16 | +service.interceptors.request.use(config => { | |
| 17 | + // 是否需要设置 token | |
| 18 | + const isToken = (config.headers || {}).isToken === false | |
| 19 | + if (getToken() && !isToken) { | |
| 20 | + config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 | |
| 21 | + } | |
| 22 | + return config | |
| 23 | +}, error => { | |
| 23 | 24 | console.log(error) |
| 24 | 25 | Promise.reject(error) |
| 25 | - } | |
| 26 | -) | |
| 26 | +}) | |
| 27 | 27 | |
| 28 | 28 | // 响应拦截器 |
| 29 | 29 | service.interceptors.response.use(res => { |
| 30 | - const code = res.data.code | |
| 30 | + // 未设置状态码则默认成功状态 | |
| 31 | + const code = res.data.code || 200; | |
| 32 | + // 获取错误信息 | |
| 33 | + const message = errorCode[code] || res.data.msg || errorCode['default'] | |
| 31 | 34 | if (code === 401) { |
| 32 | 35 | MessageBox.confirm( |
| 33 | 36 | '登录状态已过期,您可以继续留在该页面,或者重新登录', |
| ... | ... | @@ -42,9 +45,15 @@ service.interceptors.response.use(res => { |
| 42 | 45 | location.reload() // 为了重新实例化vue-router对象 避免bug |
| 43 | 46 | }) |
| 44 | 47 | }) |
| 48 | + } else if (code === 500) { | |
| 49 | + Message({ | |
| 50 | + message: message, | |
| 51 | + type: 'error' | |
| 52 | + }) | |
| 53 | + return Promise.reject(new Error(message)) | |
| 45 | 54 | } else if (code !== 200) { |
| 46 | 55 | Notification.error({ |
| 47 | - title: res.data.msg | |
| 56 | + title: message | |
| 48 | 57 | }) |
| 49 | 58 | return Promise.reject('error') |
| 50 | 59 | } else { | ... | ... |
ruoyi/src/main/java/com/ruoyi/framework/web/controller/BaseController.java