request.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import Vue from 'vue'
  2. import axios from 'axios'
  3. import router from '@/router/index'
  4. import { MessageBox, Message } from 'element-ui'
  5. // import store from '@/store'
  6. // import { getToken } from '@/utils/auth'
  7. // create an axios instance
  8. const service = axios.create({
  9. //baseURL: process.env.VUE_APP_BASE_API, // 根目录路径
  10. // baseURL: 'http://192.168.1.77:8092',
  11. baseURL: 'http://192.168.1.70:8087',
  12. //baseURL: 'http://192.168.1.96.8090',
  13. withCredentials: true, // send cookies when cross-domain requests
  14. timeout: 60000 // request timeout
  15. })
  16. // request interceptor
  17. service.interceptors.request.use(
  18. config => {
  19. // do something before request is sent
  20. // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' //此处是增加的代码,设置请求头的类型
  21. // if (process.env.VUE_APP_BASE_API !== '/dev-api') {
  22. // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
  23. // config.withCredentials = false
  24. // }
  25. // if (store.getters.token) {
  26. // if (process.env.VUE_APP_BASE_API === '/dev-api') {
  27. // config.headers['X-Token'] = getToken()
  28. // } else {
  29. // config.headers['token'] = getToken()
  30. // }
  31. // }
  32. // console.log(sessionStorage.getItem("g_token"))
  33. config.headers['Authorization'] = 'Bearer '+ window.sessionStorage.getItem("g_token")
  34. return config
  35. },
  36. error => {
  37. // do something with request error
  38. console.log(error) // for debug
  39. return Promise.reject(error)
  40. }
  41. )
  42. // response interceptor
  43. service.interceptors.response.use(
  44. /**
  45. * If you want to get http information such as headers or status
  46. * Please return response => response
  47. */
  48. /**
  49. * Determine the request status by custom code
  50. * Here is just an example
  51. * You can also judge the status by HTTP Status Code
  52. */
  53. response => {
  54. // console.log("response-------------",response)
  55. const res = response.data
  56. //console.log(res)
  57. // if the custom code is not 20000, it is judged as an error.
  58. if (res.code !== 200) {
  59. Message({
  60. // message: res.msg + res.code,
  61. message: '请求超时'+ res.msg,
  62. type: 'error',
  63. duration: 5 * 1000
  64. })
  65. // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  66. // if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
  67. // // to re-login
  68. // MessageBox.confirm('你已经注销登陆,你可以取消或重新登陆', '确认注销', {
  69. // confirmButtonText: '重新登陆',
  70. // cancelButtonText: '取消',
  71. // type: 'warning'
  72. // }).then(() => {
  73. // // store.dispatch('user/resetToken').then(() => {
  74. // // location.reload()
  75. // // })
  76. // })
  77. // }
  78. // if (res.code === 20002) {
  79. // // store.dispatch('user/resetToken').then(() => {
  80. // // location.reload()
  81. // // })
  82. // }
  83. if (res.code === undefined) {
  84. return res
  85. } else {
  86. return Promise.reject(new Error(res.message || 'Error'))
  87. }
  88. } else {
  89. return res
  90. }
  91. },
  92. error => {
  93. console.log('error' + error) // for debug
  94. if (error.response.data.code === 10000) {
  95. MessageBox.confirm('你已经注销登陆,你可以取消或重新登陆', '确认注销', {
  96. confirmButtonText: '重新登陆',
  97. cancelButtonText: '取消',
  98. type: 'warning'
  99. }).then(() => {
  100. //清空token
  101. window.sessionStorage.clear()
  102. //跳转登录页
  103. router.push('/login')
  104. location.reload()
  105. })
  106. }
  107. let config = error.config
  108. if (!config) {
  109. Message({ message: error.msg, type: 'error', duration: 5 * 1000 })
  110. return Promise.reject(error)
  111. }
  112. Message({
  113. message: "操作错误!"+error.response.data.errors[0],
  114. type: 'error',
  115. duration: 5 * 1000
  116. })
  117. return Promise.reject(error)
  118. }
  119. )
  120. export default service