request.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import axios from 'axios'
  2. import { MessageBox, Message } from 'element-ui'
  3. import store from '@/store'
  4. import { getToken,getUserUrl } 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. if(store.getters.userurl){
  28. //如果用户登录携带了userurl 就存起来
  29. config.headers['userurl'] = getUserUrl()
  30. }
  31. return config
  32. },
  33. error => {
  34. // do something with request error
  35. console.log(error) // for debug
  36. return Promise.reject(error)
  37. }
  38. )
  39. // response interceptor
  40. service.interceptors.response.use(
  41. /**
  42. * If you want to get http information such as headers or status
  43. * Please return response => response
  44. */
  45. /**
  46. * Determine the request status by custom code
  47. * Here is just an example
  48. * You can also judge the status by HTTP Status Code
  49. */
  50. response => {
  51. const res = response.data
  52. return res
  53. // if the custom code is not 20000, it is judged as an error.
  54. // if (res.code !== 20000) {
  55. // Message({
  56. // message: res.message || 'Error',
  57. // type: 'error',
  58. // duration: 5 * 1000
  59. // })
  60. // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  61. // if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
  62. // // to re-login
  63. // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
  64. // confirmButtonText: 'Re-Login',
  65. // cancelButtonText: 'Cancel',
  66. // type: 'warning'
  67. // }).then(() => {
  68. // store.dispatch('user/resetToken').then(() => {
  69. // location.reload()
  70. // })
  71. // })
  72. // }
  73. // return Promise.reject(new Error(res.message || 'Error'))
  74. // } else {
  75. // return res
  76. // }
  77. },
  78. error => {
  79. console.log('err' + error) // for debug
  80. Message({
  81. message: error.message,
  82. type: 'error',
  83. duration: 15 * 1000
  84. })
  85. return Promise.reject(error)
  86. }
  87. )
  88. export default service