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