request.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <<<<<<< HEAD
  2. import axios from "axios";
  3. import { Message, MessageBox } from "element-ui";
  4. import store from "../store";
  5. import { getToken } from "@/utils/auth";
  6. =======
  7. import axios from 'axios'
  8. import { Message, MessageBox } from 'element-ui'
  9. import store from '../store'
  10. import { getToken } from '@/utils/auth'
  11. >>>>>>> 259d796d8a144f6fcd5b371a06c66676c11ec3e9
  12. // 创建axios实例
  13. const service = axios.create({
  14. baseURL: process.env.BASE_API, // api的base_url
  15. <<<<<<< HEAD
  16. timeout: 15000, // 请求超时时间
  17. });
  18. // request拦截器
  19. service.interceptors.request.use(
  20. (config) => {
  21. if (store.getters.token) {
  22. config.headers["Authorization"] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
  23. }
  24. return config;
  25. },
  26. (error) => {
  27. // Do something with request error
  28. console.log(error); // for debug
  29. Promise.reject(error);
  30. }
  31. );
  32. // respone拦截器
  33. service.interceptors.response.use(
  34. (response) => {
  35. /**
  36. * code为非200是抛错 可结合自己业务进行修改
  37. */
  38. const res = response.data;
  39. if (res.code) {
  40. if (res.code !== 200) {
  41. Message({
  42. message: res.message,
  43. type: "error",
  44. duration: 3 * 1000,
  45. });
  46. // 401:未登录;
  47. if (res.code === 401) {
  48. MessageBox.confirm(
  49. "你已被登出,可以取消继续留在该页面,或者重新登录",
  50. "确定登出",
  51. {
  52. confirmButtonText: "重新登录",
  53. cancelButtonText: "取消",
  54. type: "warning",
  55. }
  56. ).then(() => {
  57. store.dispatch("FedLogOut").then(() => {
  58. location.reload(); // 为了重新实例化vue-router对象 避免bug
  59. });
  60. });
  61. }
  62. // return Promise.reject("error");
  63. } else {
  64. return response.data;
  65. }
  66. } else {
  67. return response;
  68. }
  69. },
  70. (error) => {
  71. if (error.response) {
  72. if (error.response.status === 500) {
  73. if(error.response.data.code==401){
  74. MessageBox.confirm(
  75. "你已被登出,可以取消继续留在该页面,或者重新登录",
  76. "确定登出",
  77. {
  78. confirmButtonText: "重新登录",
  79. cancelButtonText: "取消",
  80. type: "warning",
  81. }
  82. ).then(() => {
  83. store.dispatch("FedLogOut").then(() => {
  84. location.reload();
  85. });
  86. });
  87. }else{
  88. Message({
  89. message:'服务器错误:' +error.message,
  90. type: "error",
  91. duration: 3 * 1000,
  92. });
  93. }
  94. }
  95. }
  96. console.log("err" + error); // for debug
  97. return Promise.reject(error);
  98. }
  99. );
  100. export default service;
  101. =======
  102. timeout: 15000 // 请求超时时间
  103. })
  104. // request拦截器
  105. service.interceptors.request.use(config => {
  106. if (store.getters.token) {
  107. config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  108. }
  109. return config
  110. }, error => {
  111. // Do something with request error
  112. console.log(error) // for debug
  113. Promise.reject(error)
  114. })
  115. // respone拦截器
  116. service.interceptors.response.use(
  117. response => {
  118. /**
  119. * code为非200是抛错 可结合自己业务进行修改
  120. */
  121. const res = response.data
  122. if(res.code){
  123. if (res.code !== 200) {
  124. Message({
  125. message: res.message,
  126. type: 'error',
  127. duration: 3 * 1000
  128. })
  129. // 401:未登录;
  130. if (res.code === 401) {
  131. MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
  132. confirmButtonText: '重新登录',
  133. cancelButtonText: '取消',
  134. type: 'warning'
  135. }).then(() => {
  136. store.dispatch('FedLogOut').then(() => {
  137. location.reload()// 为了重新实例化vue-router对象 避免bug
  138. })
  139. })
  140. }
  141. return Promise.reject('error')
  142. } else {
  143. return response.data
  144. }
  145. }else{
  146. return response
  147. }
  148. },
  149. error => {
  150. console.log('err' + error)// for debug
  151. Message({
  152. message: error.message,
  153. type: 'error',
  154. duration: 3 * 1000
  155. })
  156. return Promise.reject(error)
  157. }
  158. )
  159. export default service
  160. >>>>>>> 259d796d8a144f6fcd5b371a06c66676c11ec3e9