| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import AdapterUniapp from '@alova/adapter-uniapp'
- import { createAlova } from 'alova'
- import vueHook from 'alova/vue'
- import { handleAlovaError, handleAlovaResponse } from './handlers'
- import { BASE_URL } from '@/config'
- export const alovaInstance = createAlova({
- baseURL: BASE_URL,
- ...AdapterUniapp(),
- statesHook: vueHook,
- beforeRequest: (method) => {
- // Add content type for POST/PUT/PATCH requests
- if (['POST', 'PUT', 'PATCH'].includes(method.type)) {
- method.config.headers['Content-Type'] = 'application/json'
- }
- // if (['POST', 'PUT', 'PATCH', 'DELETE', 'GET'].includes(method.type)) {
- // method.config.headers['X-Tenant-Domain'] = BASE_URL
- // }
- const { token } = useUserStore()
- method.config.headers.Authorization = token || 'Basic c21xamgtYXBwbGV0OjEyMzQ1Ng=='
- // Add timestamp to prevent caching for GET requests
- if (method.type === 'GET' && CommonUtil.isObj(method.config.params)) {
- method.config.params._t = Date.now()
- }
- // Log request in development
- if (import.meta.env.MODE === 'development') {
- console.log(
- `[Alova Request] ${method.type} ${method.url}`,
- method.data || method.config.params,
- )
- // console.log(`[API Base URL] ${import.meta.env.VITE_API_BASE_URL}`);
- // console.log(`[Environment] ${import.meta.env.VITE_ENV_NAME}`);
- }
- console.log(
- BASE_URL,
- '=================所连服务器==========================',
- )
- },
- // Response handlers
- responded: {
- // Success handler
- onSuccess: handleAlovaResponse,
- // Error handler
- onError: handleAlovaError,
- // Complete handler - runs after success or error
- },
- // We'll use the middleware in the hooks
- // middleware is not directly supported in createAlova options
- // Default request timeout (10 seconds)
- timeout: 60000,
- // 设置为null即可全局关闭全部请求缓存
- cacheFor: null,
- })
- export default alovaInstance
|