diff --git a/src/webui/src/middleware/cors.ts b/src/webui/src/middleware/cors.ts index 8b91ddfa..64a0d955 100644 --- a/src/webui/src/middleware/cors.ts +++ b/src/webui/src/middleware/cors.ts @@ -1,10 +1,16 @@ import type { RequestHandler } from 'express'; // CORS 中间件,跨域用 -export const cors: RequestHandler = (_, res, next) => { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Methods', '*'); - res.header('Access-Control-Allow-Headers', '*'); +export const cors: RequestHandler = (req, res, next) => { + const origin = req.headers.origin || '*'; + res.header('Access-Control-Allow-Origin', origin); + res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); + res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); res.header('Access-Control-Allow-Credentials', 'true'); + + if (req.method === 'OPTIONS') { + res.sendStatus(204); + return; + } next(); }; \ No newline at end of file