File size: 1,084 Bytes
7fc5208 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/**
* CORS 相关的响应头配置
*/
export const CORS_HEADERS = {
'Access-Control-Allow-Origin': '*', // 允许所有来源
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', // 允许的HTTP方法
'Access-Control-Allow-Headers': 'Content-Type, Authorization, X-Requested-With', // 允许的请求头
'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
});
} |