fix h5 explicit app code header

This commit is contained in:
zhx 2026-06-25 14:18:00 +08:00
parent ffdd2bad74
commit 64d64c93da

View File

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