fix(HEL-99): 手机端 fetch 出口收敛到 shared/api.js + 架构清单刷新

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
施工员
2026-08-24 21:45:47 +08:00
co-authored by multica-agent
parent 39915f0278
commit 1da8b567bd
3 changed files with 14 additions and 30 deletions
+2 -2
View File
@@ -461,8 +461,8 @@
}, },
{ {
"path": "frontend/index.html", "path": "frontend/index.html",
"bytes": 47131, "bytes": 47871,
"lines": 646 "lines": 661
}, },
{ {
"path": "backend/features/screener/catalog.py", "path": "backend/features/screener/catalog.py",
+1
View File
@@ -36,6 +36,7 @@
<nav id="m-tabbar" class="m-tabbar" aria-label="主导航" hidden></nav> <nav id="m-tabbar" class="m-tabbar" aria-label="主导航" hidden></nav>
</div> </div>
<script src="config/nav.config.js"></script> <script src="config/nav.config.js"></script>
<script src="../shared/api.js"></script>
<script src="js/api.js"></script> <script src="js/api.js"></script>
<script src="js/session.js"></script> <script src="js/session.js"></script>
<script src="js/router.js"></script> <script src="js/router.js"></script>
+11 -28
View File
@@ -1,41 +1,24 @@
(function (global) { (function (global) {
"use strict"; "use strict";
// 手机端 API 薄封装:唯一 fetch 出口收敛到 shared/api.jsXiaobaiAPI)。
// 本文件不再直接调用 fetch,仅负责把 CSRF Token 配置进共享出口并转发请求,
// 保持既有 MobileAPI.request(url[, method, body]) 调用面不变。
let csrfToken = ""; let csrfToken = "";
function setCsrfToken(token) { function setCsrfToken(token) {
csrfToken = token || ""; csrfToken = token || "";
} global.XiaobaiAPI.configure({
csrfToken: function () {
function requestOptions(method, body) { return csrfToken;
const normalized = String(method || "GET").toUpperCase(); }
const options = { method: normalized, headers: {} }; });
if (!["GET", "HEAD", "OPTIONS"].includes(normalized) && csrfToken) {
options.headers["X-CSRF-Token"] = csrfToken;
}
if (body !== null && body !== undefined) {
options.headers["Content-Type"] = "application/json";
options.body = JSON.stringify(body);
}
return options;
} }
async function request(url, method, body) { async function request(url, method, body) {
const response = await fetch(url, requestOptions(method, body)); return global.XiaobaiAPI.request(url, method, body);
let payload = {};
try {
payload = await response.json();
} catch (_error) {
payload = {};
}
if (!response.ok || payload.error) {
const error = new Error(payload.error || "请求失败");
error.status = response.status;
error.payload = payload;
throw error;
}
return payload;
} }
global.MobileAPI = { setCsrfToken, request }; global.MobileAPI = { setCsrfToken: setCsrfToken, request: request };
})(window); })(window);