From 8acdc86ae75b57f3566d1e63e6c2a1c314956644 Mon Sep 17 00:00:00 2001 From: Samual Norman Date: Tue, 15 Apr 2025 10:06:33 +0100 Subject: [PATCH 1/2] preserve headers in `query()`'s `handleResponse()` --- src/data/query.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/data/query.ts b/src/data/query.ts index 6ed49161..67ff9efd 100644 --- a/src/data/query.ts +++ b/src/data/query.ts @@ -177,6 +177,17 @@ export function query any>(fn: T, name: string): Cac function handleResponse(error: boolean) { return async (v: any | Response) => { if (v instanceof Response) { + const e = getRequestEvent(); + + if (e) { + for (const [ key, value ] of v.headers) { + if (key == "set-cookie") + e.response.headers.append("set-cookie", value); + else + e.response.headers.set(key, value); + } + } + const url = v.headers.get(LocationHeader); if (url !== null) { @@ -186,10 +197,7 @@ export function query any>(fn: T, name: string): Cac navigate(url, { replace: true }); }); else if (!isServer) window.location.href = url; - else if (isServer) { - const e = getRequestEvent(); - if (e) e.response = { status: 302, headers: new Headers({ Location: url }) }; - } + else if (e) e.response.status = 302; return; } From 0a2f556f3cf1a664f715a71ffc278305d640ecfc Mon Sep 17 00:00:00 2001 From: Ryan Carniato Date: Wed, 23 Apr 2025 13:42:50 -0700 Subject: [PATCH 2/2] Create rude-camels-cover.md --- .changeset/rude-camels-cover.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rude-camels-cover.md diff --git a/.changeset/rude-camels-cover.md b/.changeset/rude-camels-cover.md new file mode 100644 index 00000000..1f2684c2 --- /dev/null +++ b/.changeset/rude-camels-cover.md @@ -0,0 +1,5 @@ +--- +"@solidjs/router": patch +--- + +preserve headers in `query()`'s `handleResponse()`