request.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import axios from 'axios'
  2. import {
  3. Toast
  4. } from "vant";
  5. // export const baseURL = process.env.NODE_ENV === 'development' ? 'http://192.168.20.55:8037/api/' : '/api/' //线下地址
  6. export const baseURL = process.env.NODE_ENV === 'development' ? 'https://yifangyice.4dage.com/api/' : 'https://yifangyice.4dage.com' //线上地址
  7. let axajInd = 0
  8. const service = axios.create({
  9. baseURL: baseURL,
  10. timeout: 50000
  11. })
  12. // 请求拦截器
  13. service.interceptors.request.use(function (config) {
  14. document.querySelector('.loadingApp').style.display = 'block'
  15. axajInd++
  16. // console.log('触发拦截器')
  17. // 在发送请求之前做些什么:看看有没有token,如果有通过请求头的方式传递token
  18. const token = localStorage.getItem('YFYC_token')
  19. if (token) { // 判断是否有token,有,则
  20. // config.headers['Authorization'] = token
  21. config.headers.token = token
  22. }
  23. return config
  24. }, function (error) {
  25. // 对请求错误做些什么
  26. return Promise.reject(error)
  27. })
  28. // 添加响应拦截器
  29. service.interceptors.response.use(function (response) {
  30. axajInd--
  31. // console.log('触发相应拦截器', response)
  32. // 对响应数据做点什么--response就是发送每个请求的返回值
  33. if (response.data.code === 5001 || response.data.code === 5002) {
  34. Toast.fail('登录失效!')
  35. localStorage.removeItem('YFYC_token')
  36. }
  37. if (axajInd === 0) document.querySelector('.loadingApp').style.display = 'none'
  38. return response.data
  39. }, function (error) {
  40. Toast.fail(error.message);
  41. // 对响应错误做点什么
  42. return Promise.reject(error)
  43. })
  44. export default service