axios-nuxt.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import Vue from 'vue'
  2. import Axios from 'axios'
  3. // export default function(store, req) {
  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. // const cookie = config.req.headers['cookie']
  12. // store.commit('option/SET_COOKIES', cookie)
  13. if (config.url.indexOf('.') === -1) {
  14. config.url = process.env.baseUrl + config.url
  15. }
  16. // config.headers.cookie = store.state.option.cookies + '; ' + store.state.option.sessionId
  17. // config.headers['User-Agent'] = store.state.option.userAgent
  18. }
  19. // console.log(config.url)
  20. // if (typeof window === 'undefined') {
  21. // config.headers.cookie = store.state.option.cookies + '; ' + store.state.option.sessionId
  22. // // config.headers['User-Agent'] = Vue.$store.state.option.userAgent
  23. // } else {
  24. // console.log(store)
  25. // }
  26. return config
  27. }, error => {
  28. return Promise.reject(error)
  29. })
  30. service.interceptors.response.use(response => {
  31. const cookies = response.headers['set-cookie']
  32. if (cookies && cookies.length) {
  33. for (let i = 0; i < cookies.length; i++) {
  34. if (cookies[i].indexOf('JSESSIONID') > -1) {
  35. const sessionId = cookies[i]
  36. const first = sessionId.indexOf(';')
  37. const second = sessionId.lastIndexOf(';')
  38. const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
  39. store.commit('option/SET_SESSION_ID', newSessionId)
  40. break
  41. }
  42. }
  43. }
  44. return response
  45. }, error => {
  46. return Promise.reject(error)
  47. })
  48. Vue.prototype.$http = service
  49. export default service
  50. // }
  51. // export default function ({ isServer, store, req }) {
  52. // axios(store, req)
  53. // }