| 123456789101112131415161718192021222324252627282930313233343536 |
- import axios from 'axios'
- /**
- * baseURL 解析优先级:
- * 1. URL 参数 apiBase (admin 跳转过来时携带, 自动携带当前 admin 域名,
- * 支持一份 React 部署服务多套环境 test/pre/prod)
- * 2. 构建时环境变量 VITE_API_BASE_URL (兜底, 直接访问 React URL 时用)
- * 3. 开发默认 /videoVector (走 Vite proxy 直连本地 video-vector)
- */
- function resolveBaseURL(): string {
- const urlApiBase = new URLSearchParams(window.location.search).get('apiBase')
- if (urlApiBase) return urlApiBase
- return import.meta.env.VITE_API_BASE_URL ?? '/videoVector'
- }
- const baseURL = resolveBaseURL()
- const client = axios.create({
- baseURL,
- timeout: 60_000,
- withCredentials: true, // 跨域请求自动携带 admin Cookie(用于 manager-new Session 鉴权)
- headers: {
- 'Content-Type': 'application/json',
- },
- })
- // 简易错误日志(MVP 不做复杂全局拦截)
- client.interceptors.response.use(
- (resp) => resp,
- (err) => {
- console.error('[API ERROR]', err?.message, err?.response?.data)
- return Promise.reject(err)
- },
- )
- export default client
|