request.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import axios from 'axios'
  2. // import { getToken } from '@/utils/auth'
  3. // import { blobToJson } from '@/utils'
  4. import qs from 'qs'
  5. // import Vue from 'vue'
  6. // create an axios instance
  7. const service = axios.create({
  8. baseURL: process.env.VUE_APP_BASE_API,
  9. // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  10. // withCredentials: true, // send cookies when cross-domain requests
  11. timeout: 10000 // request timeout
  12. })
  13. // request interceptor
  14. // 发送请求拦截器
  15. service.interceptors.request.use(
  16. config => {
  17. // do something before request is sent
  18. // if (getToken()) {
  19. // config.headers.token = getToken()
  20. // }
  21. // config.headers.token = getToken()
  22. return config
  23. },
  24. error => {
  25. // do something with request error
  26. // console.error(error) // for debug
  27. return Promise.reject(error)
  28. }
  29. )
  30. // response interceptor
  31. // 请求返回之后的拦截器
  32. service.interceptors.response.use(
  33. response => {
  34. const res = response.data
  35. // console.log(res)
  36. return res
  37. },
  38. error => {
  39. console.log('error', error)
  40. if (error?.response?.status === 400) {
  41. return Promise.reject(error.response.data.message)
  42. }
  43. return Promise.reject(error.message)
  44. }
  45. )
  46. // 请求方法
  47. const http = {
  48. post (url, params) {
  49. return service.post(url, params, {
  50. transformRequest: [(params) => {
  51. return JSON.stringify(params)
  52. }],
  53. headers: {
  54. 'Content-Type': 'application/json'
  55. }
  56. })
  57. },
  58. get (url, params) {
  59. return service.get(url, {
  60. params: params,
  61. paramsSerializer: (params) => {
  62. return qs.stringify(params)
  63. }
  64. })
  65. },
  66. formData (url, params) {
  67. return service.post(url, params, {
  68. headers: {
  69. 'Content-Type': 'application/x-www-form-urlencoded'
  70. }
  71. })
  72. },
  73. upload (url, params) {
  74. return service.post(url, params, {
  75. headers: {
  76. 'Content-Type': 'multipart/form-data'
  77. }
  78. })
  79. },
  80. download (url, params) {
  81. return service.post(url, params, {
  82. // timeout: 10000,
  83. headers: {
  84. 'Content-Type': 'application/json'
  85. },
  86. responseType: 'blob'
  87. })
  88. }
  89. }
  90. export default http