| /** | |
| * CORS 相关的响应头配置 | |
| */ | |
| export const CORS_HEADERS = { | |
| 'Access-Control-Allow-Origin': '*', // 允许所有来源 | |
| 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', // 允许的HTTP方法 | |
| 'Access-Control-Allow-Headers': '*', // 允许的请求头 | |
| 'Access-Control-Max-Age': '86400', // 预检请求的有效期 | |
| }; | |
| /** | |
| * 处理 OPTIONS 预检请求 | |
| */ | |
| export function handleOptions(): Response { | |
| return new Response(null, { | |
| status: 204, | |
| headers: CORS_HEADERS | |
| }); | |
| } | |
| /** | |
| * 为响应添加 CORS 头 | |
| * @param response 原始响应对象 | |
| * @returns 添加了 CORS 头的新响应对象 | |
| */ | |
| export function addCorsHeaders(response: Response): Response { | |
| const newHeaders = new Headers(response.headers); | |
| Object.entries(CORS_HEADERS).forEach(([key, value]) => { | |
| newHeaders.set(key, value); | |
| }); | |
| return new Response(response.body, { | |
| status: response.status, | |
| statusText: response.statusText, | |
| headers: newHeaders | |
| }); | |
| } |