From 634ed22dcd0dad807cb267d0dbf989b88c9685b6 Mon Sep 17 00:00:00 2001 From: Pine Date: Mon, 24 Aug 2026 20:38:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(park):=20=E5=9B=AD=E5=8C=BA=E5=AD=90?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=8A=A0=20CORS(allow=5Forigins=3D*)=20?= =?UTF-8?q?=E2=80=94=20=E5=A4=A7=E5=B1=8F=E8=B7=A8=E5=9F=9F=E9=A2=84?= =?UTF-8?q?=E6=A3=80=20405/ACAO=20=E6=8B=92=E7=BB=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 大屏(Vite dev :1420 / Tauri tauri.localhost)与 server-core(:8090) 不同源;app.park 独立 FastAPI 未加 CORS → OPTIONS 预检 405、ACAO 拒绝。加 CORSMiddleware(allow_origins=['*']), TestClient 验证 /park/api/config 与预检均 200 且带 ACAO。 --- app/park/app.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/park/app.py b/app/park/app.py index dc5b218..596f4ad 100644 --- a/app/park/app.py +++ b/app/park/app.py @@ -13,6 +13,7 @@ from contextlib import asynccontextmanager from pathlib import Path from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles from .config import settings @@ -71,6 +72,15 @@ async def lifespan(app: FastAPI): app = FastAPI(title="OPC 智能园区子应用", version="1.0.0", lifespan=lifespan) +# 跨域:大屏(Vite dev :1420 / Tauri tauri.localhost)与 server-core(:8090) 不同源,需放行 +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], + allow_credentials=True, +) + # 关键:内部路由本为 /api/*,挂载到 /park 下 → 外部地址 /park/api/* app.include_router(router, prefix="/park")