request.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import axios from 'axios'
  2. import { MessageBox, Message } from 'element-ui'
  3. import store from '@/store'
  4. import { getToken } from '@/utils/auth'
  5. import URL from '@/utils/baseUrl';
  6. // create an axios instance
  7. const service = axios.create({
  8. //千万不能在这里使用绝对地址,这会导致webpack的devserve不生效
  9. //baseURL: URL.testUrl, //刘佳伟的电脑
  10. //baseURL: URL.liuUrl, //刘剑的电脑
  11. baseURL: URL.baseUrl, //测试服务器
  12. //baseURL: URL.servUrl, //正式服务器
  13. //baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  14. //withCredentials: true, // send cookies when cross-domain requests
  15. timeout: 50000 // request timeout
  16. })
  17. // request interceptor
  18. service.interceptors.request.use(
  19. config => {
  20. // do something before request is sent
  21. if (store.getters.token) {
  22. // let each request carry token
  23. // ['X-Token'] is a custom headers key
  24. // please modify it according to the actual situation
  25. config.headers['token'] = getToken()
  26. }
  27. return config
  28. },
  29. error => {
  30. // do something with request error
  31. console.log(error) // for debug
  32. return Promise.reject(error)
  33. }
  34. )
  35. // response interceptor
  36. service.interceptors.response.use(
  37. /**
  38. * If you want to get http information such as headers or status
  39. * Please return response => response
  40. */
  41. /**
  42. * Determine the request status by custom code
  43. * Here is just an example
  44. * You can also judge the status by HTTP Status Code
  45. */
  46. response => {
  47. const res = response.data
  48. return res
  49. // if the custom code is not 20000, it is judged as an error.
  50. // if (res.code !== 20000) {
  51. // Message({
  52. // message: res.message || 'Error',
  53. // type: 'error',
  54. // duration: 5 * 1000
  55. // })
  56. // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  57. // if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
  58. // // to re-login
  59. // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
  60. // confirmButtonText: 'Re-Login',
  61. // cancelButtonText: 'Cancel',
  62. // type: 'warning'
  63. // }).then(() => {
  64. // store.dispatch('user/resetToken').then(() => {
  65. // location.reload()
  66. // })
  67. // })
  68. // }
  69. // return Promise.reject(new Error(res.message || 'Error'))
  70. // } else {
  71. // return res
  72. // }
  73. },
  74. error => {
  75. console.log('err' + error) // for debug
  76. Message({
  77. message: error.message,
  78. type: 'error',
  79. duration: 5 * 10000
  80. })
  81. return Promise.reject(error)
  82. }
  83. )
  84. export default service