axios.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. config.url = config.url || '/'
  10. if (process.server) {
  11. config.url = process.env.baseUrl + config.url
  12. }
  13. console.log(config)
  14. return config
  15. }, error => {
  16. return Promise.reject(error)
  17. })
  18. service.interceptors.response.use(response => {
  19. const cookies = response.headers['set-cookie']
  20. if (cookies && cookies.length) {
  21. for (let i = 0; i < cookies.length; i++) {
  22. if (cookies[i].indexOf('JSESSIONID') > -1) {
  23. const sessionId = cookies[i]
  24. const first = sessionId.indexOf(';')
  25. const second = sessionId.lastIndexOf(';')
  26. const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
  27. store.commit('option/SET_SESSION_ID', newSessionId)
  28. break
  29. }
  30. }
  31. }
  32. return response
  33. }, error => {
  34. return Promise.reject(error)
  35. })
  36. Vue.prototype.$http = service
  37. export default service