request.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import axios from 'axios'
  2. const service = axios.create({
  3. baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  4. })
  5. import {
  6. Dialog
  7. } from 'vant';
  8. // request interceptor
  9. service.interceptors.request.use(
  10. config => {
  11. if (sessionStorage.getItem('x-token')) {
  12. config.headers['x-token'] = sessionStorage.getItem('x-token')
  13. }
  14. if (config.type === 'change') {
  15. config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
  16. } else if (config.type === 'formData') {
  17. config.headers['Content-Type'] = 'multipart/form-data;charset=utf-8;'
  18. } else {
  19. config.headers['Content-Type'] = 'application/json'
  20. }
  21. return config
  22. },
  23. error => {
  24. // do something with request error
  25. console.log(error) // for debug
  26. return Promise.reject(error)
  27. }
  28. )
  29. // response interceptor
  30. service.interceptors.response.use(
  31. response => {
  32. const res = response.data
  33. const config = response.config
  34. if (config != null) {
  35. const blob = response.config.responseType
  36. if (blob == 'blob') {
  37. return res
  38. }
  39. }
  40. console.log(res)
  41. if (res.code === '0001') {
  42. Dialog({
  43. message: res.message || 'Error'
  44. });
  45. return res
  46. }
  47. if (res.code !== '0000') {
  48. Dialog({
  49. message: res.message || 'Error'
  50. });
  51. return Promise.reject(new Error(res.message || 'Error'))
  52. } else {
  53. return res
  54. }
  55. },
  56. error => {
  57. console.log('err' + error) // for debug
  58. return Promise.reject(error)
  59. }
  60. )
  61. export default service