Skip to content

Commit 13aea04

Browse files
committed
add req header to identify chain request
1 parent 8632b35 commit 13aea04

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

packages/kit/src/runtime/server/page/respond_with_error.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ export async function respond_with_error({
2828
error,
2929
resolve_opts
3030
}) {
31+
// reroute to the fallback page to prevent an infinite chain of requests.
32+
if (event.request.headers.get('x-sveltekit-error')) {
33+
return static_error_page(options, status, /** @type {Error} */ (error).message);
34+
}
35+
3136
/** @type {import('./types').Fetched[]} */
3237
const fetched = [];
3338

packages/kit/src/runtime/server/respond.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,12 @@ export async function respond(request, options, manifest, state) {
457457
return response;
458458
}
459459

460-
if (state.error && state.depth > 0) {
461-
return await fetch(request);
460+
if (state.error && event.isSubRequest) {
461+
return await fetch(request, {
462+
headers: {
463+
'x-sveltekit-error': 'true'
464+
}
465+
});
462466
}
463467

464468
if (state.error) {

packages/kit/test/apps/basics/src/routes/+layout.server.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ export async function load({ cookies, locals, fetch }) {
1818
}
1919

2020
if (locals.url?.pathname === '/non-existent-route-loop') {
21-
await fetch('/non-existent-route-loop').then((r) => {
22-
console.log(r.status);
23-
return r.json();
24-
});
21+
await fetch('/non-existent-route-loop');
2522
}
2623

2724
const should_fail = cookies.get('fail-type');

0 commit comments

Comments
 (0)