alova.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import AdapterUniapp from '@alova/adapter-uniapp'
  2. import { createAlova } from 'alova'
  3. const baseURL = JSON.parse(__VITE_APP_PROXY__)
  4. ? import.meta.env.VITE_APP_PROXY_PREFIX
  5. : import.meta.env.VITE_SERVER_BASEURL
  6. export const http = createAlova({
  7. baseURL,
  8. ...AdapterUniapp(),
  9. async responded(res: UniApp.RequestSuccessCallbackResult, method) {
  10. console.log('responded:', method, res)
  11. // 请求成功的拦截器
  12. // 状态码 2xx,参考 axios 的设计
  13. const resData = res.data as IResData<any>
  14. if (res.statusCode >= 200 && res.statusCode < 300) {
  15. // 2.1 提取核心数据 res.data
  16. return resData.data
  17. }
  18. else if (res.statusCode === 401) {
  19. // 401错误 -> 清理用户信息,跳转到登录页
  20. // userStore.clearUserInfo()
  21. // uni.navigateTo({ url: '/pages/login/login' })
  22. console.log(res)
  23. throw new Error(resData.msg || '401错误')
  24. }
  25. else {
  26. uni.showToast({
  27. icon: 'none',
  28. title: (resData).msg || '请求错误',
  29. })
  30. throw new Error(resData.msg || '请求错误')
  31. }
  32. },
  33. })