diff --git a/backend/server.js b/backend/server.js index 18f52ae..d08b14e 100644 --- a/backend/server.js +++ b/backend/server.js @@ -46,11 +46,19 @@ const corsOptions = { } // 严格白名单模式:只允许白名单中的域名 - if (origin && allowedOrigins.includes(origin)) { + // 但需要允许没有Origin头的同源请求(浏览器访问时不会发送Origin) + if (!origin) { + // 没有Origin头的请求通常是: + // 1. 浏览器的同源请求(不触发CORS) + // 2. 直接的服务器请求 + // 这些都应该允许 + callback(null, true); + } else if (allowedOrigins.includes(origin)) { + // 白名单中的域名 callback(null, true); } else { - // 拒绝不在白名单中的请求(包括没有Origin头的请求) - console.warn(`[CORS] 拒绝来自未授权来源的请求: ${origin || '(无Origin头)'}`); + // 拒绝不在白名单中的跨域请求 + console.warn(`[CORS] 拒绝来自未授权来源的请求: ${origin}`); callback(new Error('CORS策略不允许来自该来源的访问')); } }