Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

Commit

Permalink
fix(nuxt): disallow directly rendering error page (#8673)
Browse files Browse the repository at this point in the history
  • Loading branch information
pi0 committed Nov 3, 2022
1 parent ea17148 commit 253c8f7
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion packages/nuxt/src/core/runtime/nitro/renderer.ts
@@ -1,7 +1,7 @@
import { createRenderer, renderResourceHeaders } from 'vue-bundle-renderer/runtime'
import type { RenderResponse } from 'nitropack'
import type { Manifest } from 'vite'
import { appendHeader, getQuery, writeEarlyHints } from 'h3'
import { appendHeader, createError, getQuery, writeEarlyHints } from 'h3'
import devalue from '@nuxt/devalue'
import { joinURL } from 'ufo'
import { renderToString as _renderToString } from 'vue/server-renderer'
Expand Down Expand Up @@ -121,6 +121,10 @@ export default defineRenderHandler(async (event) => {
const ssrError = event.req.url?.startsWith('/__nuxt_error')
? getQuery(event) as Exclude<NuxtApp['payload']['error'], Error>
: null
if (ssrError && event.req.socket.readyState !== 'readOnly' /* direct request */) {
throw createError('Cannot directly render error page!')
}

let url = ssrError?.url as string || event.req.url!

// Whether we are rendering payload route
Expand Down

0 comments on commit 253c8f7

Please sign in to comment.