diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 011d6a6938d..99741489582 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -1,4 +1,4 @@ -import { parseURL, joinURL } from 'ufo' +import { joinURL } from 'ufo' import { useNuxtApp } from '../nuxt' import { useHead, useRuntimeConfig } from '..' @@ -37,12 +37,15 @@ export function preloadPayload (url: string, opts: LoadPayloadOptions = {}) { // --- Internal --- function _getPayloadURL (url: string, opts: LoadPayloadOptions = {}) { - const parsed = parseURL(url) - if (parsed.search) { + const u = new URL(url, 'http://localhost') + if (u.search) { throw new Error('Payload URL cannot contain search params: ' + url) } + if (u.host !== 'localhost') { + throw new Error('Payload URL cannot contain host: ' + url) + } const hash = opts.hash || (opts.fresh ? Date.now() : '') - return joinURL(useRuntimeConfig().app.baseURL, parsed.pathname, hash ? `_payload.${hash}.js` : '_payload.js') + return joinURL(useRuntimeConfig().app.baseURL, u.pathname, hash ? `_payload.${hash}.js` : '_payload.js') } async function _importPayload (payloadURL: string) {