@@ -58,7 +58,7 @@ export async function proxyRequest(
58
58
59
59
// Headers
60
60
const fetchHeaders = mergeHeaders (
61
- getProxyRequestHeaders ( event ) ,
61
+ getProxyRequestHeaders ( event , { host : target . startsWith ( "/" ) } ) ,
62
62
opts . fetchOptions ?. headers ,
63
63
opts . headers ,
64
64
) ;
@@ -174,11 +174,14 @@ export async function sendProxy(
174
174
/**
175
175
* Get the request headers object without headers known to cause issues when proxying.
176
176
*/
177
- export function getProxyRequestHeaders ( event : H3Event ) {
177
+ export function getProxyRequestHeaders (
178
+ event : H3Event ,
179
+ opts ?: { host ?: boolean } ,
180
+ ) {
178
181
const headers = Object . create ( null ) ;
179
182
const reqHeaders = getRequestHeaders ( event ) ;
180
183
for ( const name in reqHeaders ) {
181
- if ( ! ignoredHeaders . has ( name ) ) {
184
+ if ( ! ignoredHeaders . has ( name ) || ( name === "host" && opts ?. host ) ) {
182
185
headers [ name ] = reqHeaders [ name ] ;
183
186
}
184
187
}
@@ -202,7 +205,9 @@ export function fetchWithEvent<
202
205
...init ,
203
206
context : init ?. context || event . context ,
204
207
headers : {
205
- ...getProxyRequestHeaders ( event ) ,
208
+ ...getProxyRequestHeaders ( event , {
209
+ host : typeof req === "string" && req . startsWith ( "/" ) ,
210
+ } ) ,
206
211
...init ?. headers ,
207
212
} ,
208
213
} ) ;
0 commit comments