|
|
@@ -76,21 +76,35 @@ const service = axios.create({
|
|
|
});
|
|
|
console.log('__API__');
|
|
|
|
|
|
+// 全局环境配置缓存,避免在请求拦截器中调用store
|
|
|
+let cachedEnv = 'prod'; // 默认环境
|
|
|
+let cachedBaseURL = null;
|
|
|
+
|
|
|
+// 更新环境配置的函数
|
|
|
+export function updateHttpConfig(env: string) {
|
|
|
+ cachedEnv = env;
|
|
|
+ const apiConfig = ENV_CONFIG[env];
|
|
|
+ if (apiConfig?.api) {
|
|
|
+ cachedBaseURL = apiConfig.api;
|
|
|
+ console.log(`HTTP配置已更新: 环境=${env}, API地址=${cachedBaseURL}`);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 请求拦截器
|
|
|
service.interceptors.request.use(
|
|
|
(config: AxiosRequestConfig) => {
|
|
|
|
|
|
- // 动态设置baseURL
|
|
|
- const appConfig = pinia.state.value.config?.appConfig;
|
|
|
- let env = appConfig?.env || 'prod'; // 默认环境
|
|
|
- if (env) {
|
|
|
- // 从ENV_CONFIG获取对应环境的API地址
|
|
|
- const apiConfig = ENV_CONFIG[env];
|
|
|
+ // 使用缓存的环境配置设置baseURL
|
|
|
+ if (cachedBaseURL) {
|
|
|
+ config.baseURL = cachedBaseURL;
|
|
|
+ } else {
|
|
|
+ // 如果缓存中没有,则尝试从ENV_CONFIG获取默认环境的地址
|
|
|
+ const apiConfig = ENV_CONFIG[cachedEnv];
|
|
|
if (apiConfig?.api) {
|
|
|
config.baseURL = apiConfig.api;
|
|
|
}
|
|
|
}
|
|
|
- console.log(`使用环境: ${env}, API地址: ${config.baseURL || '__API__'}`);
|
|
|
+ console.log(`使用环境: ${cachedEnv}, API地址: ${config.baseURL || '__API__'}`);
|
|
|
|
|
|
// 在发送请求之前做些什么,例如添加 token
|
|
|
const tokenInfoStore = tokenInfo();
|