@@ -76,7 +76,7 @@ export async function handleServerFunction(h3Event: H3Event) {
7676 const serverReference = request . headers . get ( "X-Server-Id" ) ;
7777 const instance = request . headers . get ( "X-Server-Instance" ) ;
7878 const singleFlight = request . headers . has ( "X-Single-Flight" ) ;
79- const url = new URL ( request . url ) ;
79+ const url = h3Event . url ;
8080 let functionId : string | undefined | null ;
8181 if ( serverReference ) {
8282 // invariant(typeof serverReference === "string", "Invalid server function");
@@ -96,7 +96,7 @@ export async function handleServerFunction(h3Event: H3Event) {
9696 let parsed : any [ ] = [ ] ;
9797
9898 // grab bound arguments from url when no JS
99- if ( ! instance || h3Event . method === "GET" ) {
99+ if ( ! instance || request . method === "GET" ) {
100100 const args = url . searchParams . get ( "args" ) ;
101101 if ( args ) {
102102 const json = JSON . parse ( args ) ;
@@ -121,7 +121,7 @@ export async function handleServerFunction(h3Event: H3Event) {
121121 } ) ;
122122 }
123123 }
124- if ( h3Event . method === "POST" ) {
124+ if ( request . method === "POST" ) {
125125 const contentType = request . headers . get ( "content-type" ) ;
126126
127127 if (
@@ -176,7 +176,7 @@ export async function handleServerFunction(h3Event: H3Event) {
176176 }
177177
178178 // handle no JS success case
179- if ( ! instance ) return handleNoJS ( result , request , parsed ) ;
179+ if ( ! instance ) return handleNoJS ( result , h3Event , parsed ) ;
180180
181181 h3Event . res . headers . set ( "content-type" , "text/javascript" ) ;
182182
@@ -200,7 +200,7 @@ export async function handleServerFunction(h3Event: H3Event) {
200200
201201 h3Event . res . headers . set ( "X-Error" , error . replace ( / [ \r \n ] + / g, "" ) ) ;
202202 } else {
203- x = handleNoJS ( x , request , parsed , true ) ;
203+ x = handleNoJS ( x , h3Event , parsed , true ) ;
204204 }
205205 if ( instance ) {
206206 h3Event . res . headers . set ( "content-type" , "text/javascript" ) ;
@@ -210,8 +210,8 @@ export async function handleServerFunction(h3Event: H3Event) {
210210 }
211211}
212212
213- function handleNoJS ( result : any , request : Request , parsed : any [ ] , thrown ?: boolean ) {
214- const url = new URL ( request . url ) ;
213+ function handleNoJS ( result : any , h3Event : H3Event , parsed : any [ ] , thrown ?: boolean ) {
214+ const url = h3Event . url ;
215215 const isError = result instanceof Error ;
216216 let statusCode = 302 ;
217217 let headers : Headers ;
@@ -226,7 +226,7 @@ function handleNoJS(result: any, request: Request, parsed: any[], thrown?: boole
226226 }
227227 } else
228228 headers = new Headers ( {
229- Location : new URL ( request . headers . get ( "referer" ) ! ) . toString ( ) ,
229+ Location : new URL ( h3Event . req . headers . get ( "referer" ) ! ) . toString ( ) ,
230230 } ) ;
231231 if ( result ) {
232232 headers . append (
@@ -293,7 +293,7 @@ async function handleSingleFlight(sourceEvent: FetchEvent, result: any): Promise
293293 if ( result . headers . has ( "Location" ) )
294294 url = new URL (
295295 result . headers . get ( "Location" ) ! ,
296- new URL ( sourceEvent . request . url ) . origin + import . meta. env . BASE_URL ,
296+ sourceEvent . nativeEvent . url . origin + import . meta. env . BASE_URL ,
297297 ) . toString ( ) ;
298298 }
299299 const event = { ...sourceEvent } as PageEvent ;
0 commit comments