From 3eaa783c159c8b94b9120bd4b2db64dff636a38e Mon Sep 17 00:00:00 2001 From: Ayane Satomi Date: Sat, 21 Oct 2023 14:55:25 +0000 Subject: [PATCH] feat: Added middleware for handling CORS Added middleware for handling CORS and setting necessary headers --- fresh.gen.ts | 6 ++++-- routes/_middleware.ts | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 routes/_middleware.ts diff --git a/fresh.gen.ts b/fresh.gen.ts index a04a29a..1aabb31 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -4,7 +4,8 @@ import * as $0 from "./routes/_404.tsx"; import * as $1 from "./routes/_app.tsx"; -import * as $2 from "./routes/index.tsx"; +import * as $2 from "./routes/_middleware.ts"; +import * as $3 from "./routes/index.tsx"; import * as $$0 from "./islands/CounterCard.tsx"; import * as $$1 from "./islands/MarkdownContent.tsx"; @@ -12,7 +13,8 @@ const manifest = { routes: { "./routes/_404.tsx": $0, "./routes/_app.tsx": $1, - "./routes/index.tsx": $2, + "./routes/_middleware.ts": $2, + "./routes/index.tsx": $3, }, islands: { "./islands/CounterCard.tsx": $$0, diff --git a/routes/_middleware.ts b/routes/_middleware.ts new file mode 100644 index 0000000..9c97128 --- /dev/null +++ b/routes/_middleware.ts @@ -0,0 +1,21 @@ +import { MiddlewareHandlerContext } from "$fresh/server.ts"; + +export async function handler(req: Request, ctx: MiddlewareHandlerContext) { + const origin = req.headers.get("Origin") || "*"; + const resp = await ctx.next(); + const headers = resp.headers; + + headers.set("Access-Control-Allow-Origin", origin); + headers.set("Access-Control-Allow-Credentials", "true"); + headers.set("Cache-Control", "public, max-age=14400, stale-while-revalidate=86400"); + headers.set( + "Access-Control-Allow-Headers", + "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With", + ); + headers.set( + "Access-Control-Allow-Methods", + "POST, OPTIONS, GET", + ); + + return resp; +} \ No newline at end of file