axios.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import Vue from 'vue'
  2. import axios from 'axios'
  3. // const store = required('../store')
  4. const service = axios.create({
  5. withCredentials: true,
  6. baseUrl: '/'
  7. })
  8. service.interceptors.request.use(config => {
  9. // console.log(config)
  10. // console.log(typeof window)
  11. // is server render, use ${baseUrl} directly rather than ${proxyUrl}
  12. if (typeof window === 'undefined') {
  13. config.url = process.env.baseUrl + config.url
  14. // config.headers.cookie = Vue.$store.state.option.cookies + '; ' + Vue.$store.state.option.sessionId
  15. // config.headers['User-Agent'] = Vue.$store.state.option.userAgent
  16. // config.url = process.env.baseUrl + config.url
  17. } else {
  18. // console.log(store)
  19. }
  20. return config
  21. }, error => {
  22. return Promise.reject(error)
  23. })
  24. service.interceptors.response.use(response => {
  25. const cookies = response.headers['set-cookie']
  26. if (cookies && cookies.length) {
  27. for (let i = 0; i < cookies.length; i++) {
  28. if (cookies[i].indexOf('JSESSIONID') > -1) {
  29. const sessionId = cookies[i]
  30. const first = sessionId.indexOf(';')
  31. const second = sessionId.lastIndexOf(';')
  32. const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
  33. store.commit('option/SET_SESSION_ID', newSessionId)
  34. break
  35. }
  36. }
  37. }
  38. return response
  39. }, error => {
  40. return Promise.reject(error)
  41. })
  42. Vue.prototype.$http = service
  43. export default service