diff --git a/common/api.js b/common/api.js index febdb3d..88cfe25 100644 --- a/common/api.js +++ b/common/api.js @@ -252,14 +252,13 @@ var default_api = 'https://api.global-interaction.com/'; return appCode === 'yumi' || appCode === 'aslan' ? appCode : 'lalu'; } - function backendAppCode(appCode) { - appCode = String(appCode || 'lalu') + function requestAppCode() { + var queryAppCode = String(readQuery('app_code') || '') .trim() .toLowerCase(); - // H5 的 app_code 同时承载历史品牌主题和后端租户;yumi/aslan 只用于页面主题,后端当前只有 lalu/huwaa 租户。 - // 请求头必须收敛到后端已注册的 app_code,否则 gateway 会在 AppRegistryService.ResolveApp 阶段直接返回 INVALID_ARGUMENT。 - if (appCode === 'yumi' || appCode === 'aslan') return 'lalu'; - return appCode || 'lalu'; + // X-App-Code 只表达本次 URL 显式指定的后端租户,不能复用 getAppCode 的内存或 localStorage 结果。 + // 这样没有 app_code 参数的入口会稳定落到 lalu,避免历史主题缓存把后续普通页面继续打到 yumi/aslan。 + return queryAppCode || 'lalu'; } function applyAppTheme(appCode) { @@ -453,11 +452,9 @@ var default_api = 'https://api.global-interaction.com/'; opts.headers || {} ); var token = getAccessToken(); - var appCode = getAppCode(); - var requestAppCode = backendAppCode(appCode); var url = buildURL(path, opts.query); if (token) headers.Authorization = 'Bearer ' + token; - if (requestAppCode) headers['X-App-Code'] = requestAppCode; + headers['X-App-Code'] = requestAppCode(); if (!shouldPersist() && isSameOriginURL(url)) headers['Cache-Control'] = 'no-cache';