Commit 1a87ee7c196e2d5d17dbe7a8a29d36858ccaed98

Authored by 若依
Committed by Gitee
2 parents 3c4b01ab 886ce995

防止get请求参数值为false或0等特殊值会导致无法正确的传参

Merge pull request !146 from wugh/hotfix/gitee-issue_I2A5FU
Showing 1 changed file with 103 additions and 103 deletions
ruoyi-ui/src/utils/request.js
1   -import axios from 'axios'
2   -import { Notification, MessageBox, Message } from 'element-ui'
3   -import store from '@/store'
4   -import { getToken } from '@/utils/auth'
5   -import errorCode from '@/utils/errorCode'
6   -
7   -axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
8   -// 创建axios实例
9   -const service = axios.create({
10   - // axios中请求配置有baseURL选项,表示请求URL公共部分
11   - baseURL: process.env.VUE_APP_BASE_API,
12   - // 超时
13   - timeout: 10000
14   -})
15   -// request拦截器
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   - // get请求映射params参数
23   - if (config.method === 'get' && config.params) {
24   - let url = config.url + '?';
25   - for (const propName of Object.keys(config.params)) {
26   - const value = config.params[propName];
27   - var part = encodeURIComponent(propName) + "=";
28   - if (value && typeof(value) !== "undefined") {
29   - if (typeof value === 'object') {
30   - for (const key of Object.keys(value)) {
31   - let params = propName + '[' + key + ']';
32   - var subPart = encodeURIComponent(params) + "=";
33   - url += subPart + encodeURIComponent(value[key]) + "&";
34   - }
35   - } else {
36   - url += part + encodeURIComponent(value) + "&";
37   - }
38   - }
39   - }
40   - url = url.slice(0, -1);
41   - config.params = {};
42   - config.url = url;
43   - }
44   - return config
45   -}, error => {
46   - console.log(error)
47   - Promise.reject(error)
48   -})
49   -
50   -// 响应拦截器
51   -service.interceptors.response.use(res => {
52   - // 未设置状态码则默认成功状态
53   - const code = res.data.code || 200;
54   - // 获取错误信息
55   - const msg = errorCode[code] || res.data.msg || errorCode['default']
56   - if (code === 401) {
57   - MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
58   - confirmButtonText: '重新登录',
59   - cancelButtonText: '取消',
60   - type: 'warning'
61   - }
62   - ).then(() => {
63   - store.dispatch('LogOut').then(() => {
64   - location.href = '/index';
65   - })
66   - })
67   - } else if (code === 500) {
68   - Message({
69   - message: msg,
70   - type: 'error'
71   - })
72   - return Promise.reject(new Error(msg))
73   - } else if (code !== 200) {
74   - Notification.error({
75   - title: msg
76   - })
77   - return Promise.reject('error')
78   - } else {
79   - return res.data
80   - }
81   - },
82   - error => {
83   - console.log('err' + error)
84   - let { message } = error;
85   - if (message == "Network Error") {
86   - message = "后端接口连接异常";
87   - }
88   - else if (message.includes("timeout")) {
89   - message = "系统接口请求超时";
90   - }
91   - else if (message.includes("Request failed with status code")) {
92   - message = "系统接口" + message.substr(message.length - 3) + "异常";
93   - }
94   - Message({
95   - message: message,
96   - type: 'error',
97   - duration: 5 * 1000
98   - })
99   - return Promise.reject(error)
100   - }
101   -)
102   -
103   -export default service
  1 +import axios from 'axios'
  2 +import { Notification, MessageBox, Message } from 'element-ui'
  3 +import store from '@/store'
  4 +import { getToken } from '@/utils/auth'
  5 +import errorCode from '@/utils/errorCode'
  6 +
  7 +axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
  8 +// 创建axios实例
  9 +const service = axios.create({
  10 + // axios中请求配置有baseURL选项,表示请求URL公共部分
  11 + baseURL: process.env.VUE_APP_BASE_API,
  12 + // 超时
  13 + timeout: 10000
  14 +})
  15 +// request拦截器
  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 + // get请求映射params参数
  23 + if (config.method === 'get' && config.params) {
  24 + let url = config.url + '?';
  25 + for (const propName of Object.keys(config.params)) {
  26 + const value = config.params[propName];
  27 + var part = encodeURIComponent(propName) + "=";
  28 + if (value !== null && typeof(value) !== "undefined") {
  29 + if (typeof value === 'object') {
  30 + for (const key of Object.keys(value)) {
  31 + let params = propName + '[' + key + ']';
  32 + var subPart = encodeURIComponent(params) + "=";
  33 + url += subPart + encodeURIComponent(value[key]) + "&";
  34 + }
  35 + } else {
  36 + url += part + encodeURIComponent(value) + "&";
  37 + }
  38 + }
  39 + }
  40 + url = url.slice(0, -1);
  41 + config.params = {};
  42 + config.url = url;
  43 + }
  44 + return config
  45 +}, error => {
  46 + console.log(error)
  47 + Promise.reject(error)
  48 +})
  49 +
  50 +// 响应拦截器
  51 +service.interceptors.response.use(res => {
  52 + // 未设置状态码则默认成功状态
  53 + const code = res.data.code || 200;
  54 + // 获取错误信息
  55 + const msg = errorCode[code] || res.data.msg || errorCode['default']
  56 + if (code === 401) {
  57 + MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
  58 + confirmButtonText: '重新登录',
  59 + cancelButtonText: '取消',
  60 + type: 'warning'
  61 + }
  62 + ).then(() => {
  63 + store.dispatch('LogOut').then(() => {
  64 + location.href = '/index';
  65 + })
  66 + })
  67 + } else if (code === 500) {
  68 + Message({
  69 + message: msg,
  70 + type: 'error'
  71 + })
  72 + return Promise.reject(new Error(msg))
  73 + } else if (code !== 200) {
  74 + Notification.error({
  75 + title: msg
  76 + })
  77 + return Promise.reject('error')
  78 + } else {
  79 + return res.data
  80 + }
  81 + },
  82 + error => {
  83 + console.log('err' + error)
  84 + let { message } = error;
  85 + if (message == "Network Error") {
  86 + message = "后端接口连接异常";
  87 + }
  88 + else if (message.includes("timeout")) {
  89 + message = "系统接口请求超时";
  90 + }
  91 + else if (message.includes("Request failed with status code")) {
  92 + message = "系统接口" + message.substr(message.length - 3) + "异常";
  93 + }
  94 + Message({
  95 + message: message,
  96 + type: 'error',
  97 + duration: 5 * 1000
  98 + })
  99 + return Promise.reject(error)
  100 + }
  101 +)
  102 +
  103 +export default service
... ...