|
|
|
|
| |
| |
| |
| export const CORS_HEADERS = { |
| 'Access-Control-Allow-Origin': '*', |
| 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', |
| 'Access-Control-Allow-Headers': 'Content-Type, Authorization, X-Requested-With', |
| 'Access-Control-Max-Age': '86400', |
| }; |
|
|
| |
| |
| |
| export function handleOptions(): Response { |
| return new Response(null, { |
| status: 204, |
| headers: CORS_HEADERS |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| 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 |
| }); |
| } |
|
|
|
|
| |
| export async function onRequest(context: any) { |
| |
| if (context.request.method === "OPTIONS") { |
| return handleOptions(); |
| } |
| try { |
| const response = await context.next(); |
| return addCorsHeaders(response); |
| } catch (err: any) { |
| return new Response(`${err.message}\n${err.stack}`, { |
| status: 500, |
| headers: CORS_HEADERS |
| }); |
| } |
| } |