request1.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import axios from 'axios'
  2. import store from '@/store'
  3. // import { getToken } from '@/utils/auth'
  4. // import router from '@/router'
  5. import Vue from 'vue'
  6. const service = axios.create({
  7. baseURL: process.env.VUE_APP_BASE_API,
  8. // baseURL: 'http://mk.sunplus.wang/WebAPI',
  9. withCredentials: true, // send cookies when cross-domain requests
  10. timeout: 60000, // request timeout
  11. // responseType: 'json',
  12. // headers: {
  13. // 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
  14. // }
  15. })
  16. // request interceptor
  17. service.interceptors.request.use(
  18. config => {
  19. if (localStorage.getItem('token')) {
  20. let TOKEN = localStorage.getItem('token')
  21. config.headers.Authorization = `${TOKEN}`
  22. }
  23. // config.headers['content-type'] = 'multipart/form-data'
  24. return config
  25. },
  26. error => {
  27. // do something with request error
  28. console.log(error, 'err') // for debug
  29. return Promise.reject(error)
  30. }
  31. )
  32. // response interceptor
  33. service.interceptors.response.use(
  34. /**
  35. * If you want to get http information such as headers or status
  36. * Please return response => response
  37. */
  38. /**
  39. * Determine the request status by custom code
  40. * Here is just an example
  41. * You can also judge the status by HTTP Status Code
  42. */
  43. response => {
  44. const res = response.data
  45. // if the custom code is not 20000, it is judged as an error.
  46. if (res.code !== 0) {
  47. // if (res.code !== 200) {
  48. // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  49. Vue.prototype.$message({
  50. message: res.message,
  51. type: 'error'
  52. })
  53. return Promise.reject(new Error(res.message || 'Error'))
  54. } else {
  55. return res
  56. }
  57. },
  58. error => {
  59. if (error && error.message !== 'canceled')
  60. Vue.prototype.$message({
  61. message: error.message,
  62. type: 'error'
  63. })
  64. return Promise.reject(error)
  65. }
  66. )
  67. export default service