Skip to content

Commit e54fbab

Browse files
authored
Fix loader request on document POST requests (#9721)
* Fix loader request on document POST requests * add changeset * assert empty body * Keep GET method for loader requests * update changeset
1 parent c194f4a commit e54fbab

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

.changeset/kind-dodos-shop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@remix-run/router": patch
3+
---
4+
5+
Persist `headers` on `loader` `request`'s after SSR document `action` request

packages/router/__tests__/router-test.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10990,7 +10990,13 @@ describe("a router", () => {
1099010990
],
1099110991
},
1099210992
]);
10993-
await query(createSubmitRequest("/child"));
10993+
await query(
10994+
createSubmitRequest("/child", {
10995+
headers: {
10996+
test: "value",
10997+
},
10998+
})
10999+
);
1099411000

1099511001
// @ts-expect-error
1099611002
let actionRequest = actionStub.mock.calls[0][0]?.request;
@@ -11007,8 +11013,12 @@ describe("a router", () => {
1100711013
let childLoaderRequest = childLoaderStub.mock.calls[0][0]?.request;
1100811014
expect(rootLoaderRequest.method).toBe("GET");
1100911015
expect(rootLoaderRequest.url).toBe("http://localhost/child");
11016+
expect(rootLoaderRequest.headers.get("test")).toBe("value");
11017+
expect(await rootLoaderRequest.text()).toBe("");
1101011018
expect(childLoaderRequest.method).toBe("GET");
1101111019
expect(childLoaderRequest.url).toBe("http://localhost/child");
11020+
expect(childLoaderRequest.headers.get("test")).toBe("value");
11021+
// Can't re-read body here since it's the same request as the root
1101211022
});
1101311023

1101411024
it("should support a requestContext passed to loaders and actions", async () => {

packages/router/router.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2257,7 +2257,11 @@ export function unstable_createStaticHandler(
22572257
}
22582258

22592259
// Create a GET request for the loaders
2260-
let loaderRequest = new Request(request.url, { signal: request.signal });
2260+
let loaderRequest = new Request(request.url, {
2261+
headers: request.headers,
2262+
redirect: request.redirect,
2263+
signal: request.signal,
2264+
});
22612265
let context = await loadRouteData(loaderRequest, matches, requestContext);
22622266

22632267
return {

0 commit comments

Comments
 (0)