alova.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { createAlova } from 'alova'
  2. import VueHook from 'alova/vue'
  3. import adapterFetch from 'alova/fetch'
  4. export * from './url'
  5. export const Alova = createAlova({
  6. baseURL: '',
  7. statesHook: VueHook,
  8. requestAdapter: adapterFetch(),
  9. timeout: 3000,
  10. cacheLogger: process.env.NODE_ENV === 'development',
  11. responded: {
  12. onSuccess: async (response, method) => {
  13. const res = (response.json && (await response.json())) || response.body
  14. // 是否返回原生响应头 比如:需要获取响应头时使用该属性
  15. if (method.meta?.isReturnNativeResponse) {
  16. return res
  17. }
  18. // 请根据自身情况修改数据结构
  19. const { message, code, data } = res
  20. // 不进行任何处理,直接返回
  21. // 用于需要直接获取 code、result、 message 这些信息时开启
  22. if (method.meta?.isTransformResponse === false) {
  23. return res.data
  24. }
  25. // debugger
  26. // console.log(message, code, data)
  27. if (code === 0) {
  28. return data
  29. }
  30. }
  31. }
  32. })