request-new.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import axios from 'axios'
  2. import { MessageBox, Message } from 'element-ui'
  3. import { getToken, getCodeToken, TokenKey } from '@/utils/auth'
  4. import store from '@/store'
  5. import '@/config/staticConfig' //按钮权限 全局自定义指令v-is
  6. let isMttoken
  7. // create an axios instance
  8. const service = axios.create({
  9. //baseURL: baseURL, // url = base url + request url
  10. // baseURL: 'http://106.14.243.117:9112',
  11. //baseURL: 'http://106.14.243.117:9111',
  12. baseURL: `${PLATFROM_CONFIG.baseNewUrl}`,
  13. // withCredentials: true, // send cookies when cross-domain requests
  14. timeout: 30000, // request timeout
  15. headers: {
  16. 'Content-Type': 'application/json'
  17. },
  18. })
  19. // request interceptor
  20. service.interceptors.request.use(
  21. config => {
  22. // config.headers.common["content-type"] = "application/json"
  23. if (config.istoken) {
  24. config.headers['appSecret'] = PLATFROM_CONFIG.appKeyString
  25. isMttoken = config.istoken
  26. }
  27. return config
  28. },
  29. error => {
  30. // do something with request error
  31. return Promise.reject(error)
  32. }
  33. )
  34. // response interceptor
  35. service.interceptors.response.use(
  36. /**
  37. * If you want to get http information such as headers or status
  38. * Please return response => response
  39. */
  40. /**
  41. * Determine the request status by custom code
  42. * Here is just an example
  43. * You can also judge the status by HTTP Status Code
  44. */
  45. response => {
  46. const res = response.data
  47. // if the custom code is not 20000, it is judged as an error.
  48. if (res.code != 0) {
  49. Message({
  50. message: res.message || 'Error',
  51. type: 'error',
  52. duration: 5 * 1000
  53. })
  54. // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  55. if (!isMttoken) {
  56. if (res.code == 500) {
  57. // to re-login
  58. Message({
  59. message: '身份令牌过期或失效,即将重新登录',
  60. type: 'error',
  61. duration: 5 * 1000,
  62. onClose: () => {
  63. store.dispatch('user/resetToken').then(() => {
  64. location.reload()
  65. })
  66. }
  67. })
  68. }
  69. }
  70. return Promise.reject(new Error(res.message || 'Error'))
  71. } else {
  72. return res
  73. }
  74. },
  75. error => {
  76. if (isMttoken) {
  77. store.dispatch("user/setIsLogin", true);
  78. }
  79. // const des = `${error}`.split(" ").includes('500')
  80. // if (des) {
  81. // Message({
  82. // message: '身份令牌过期或失效,即将重新登录',
  83. // type: 'error',
  84. // duration: 5 * 1000,
  85. // onClose: () => {
  86. // store.dispatch('user/resetToken').then(() => {
  87. // location.reload()
  88. // })
  89. // }
  90. // })
  91. // // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
  92. // // confirmButtonText: 'Re-Login',
  93. // // cancelButtonText: 'Cancel',
  94. // // type: 'warning'
  95. // // }).then(() => {
  96. // // store.dispatch('user/resetToken').then(() => {
  97. // // location.reload()
  98. // // })
  99. // // })
  100. // } else {
  101. // Message({
  102. // message: error.message,
  103. // type: 'error',
  104. // duration: 5 * 1000
  105. // })
  106. // }
  107. //loadingInstance.close()
  108. return Promise.reject(error)
  109. }
  110. )
  111. export default service