From 7e6872573df03ab5cdc10a1a27db3e9fe81a141d Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Fri, 15 Mar 2024 09:33:33 +0100 Subject: [PATCH] fix(http): Make proxy work with Request objects (#7348) --- .../src/main/assets/native-bridge.js | 10 +++++++--- core/native-bridge.ts | 19 ++++++++++++------- .../Capacitor/assets/native-bridge.js | 10 +++++++--- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/android/capacitor/src/main/assets/native-bridge.js b/android/capacitor/src/main/assets/native-bridge.js index 271c4ba67..31631780a 100644 --- a/android/capacitor/src/main/assets/native-bridge.js +++ b/android/capacitor/src/main/assets/native-bridge.js @@ -500,9 +500,13 @@ var nativeBridge = (function (exports) { options.method.toLocaleUpperCase() === 'HEAD' || options.method.toLocaleUpperCase() === 'OPTIONS' || options.method.toLocaleUpperCase() === 'TRACE') { - const modifiedResource = createProxyUrl(resource.toString(), win); - const response = await win.CapacitorWebFetch(modifiedResource, options); - return response; + if (typeof resource === 'string') { + return await win.CapacitorWebFetch(createProxyUrl(resource, win), options); + } + else if (resource instanceof Request) { + const modifiedRequest = new Request(createProxyUrl(resource.url, win), resource); + return await win.CapacitorWebFetch(modifiedRequest, options); + } } const tag = `CapacitorHttp fetch ${Date.now()} ${resource}`; console.time(tag); diff --git a/core/native-bridge.ts b/core/native-bridge.ts index 5df9341b1..b7fa5d79c 100644 --- a/core/native-bridge.ts +++ b/core/native-bridge.ts @@ -554,13 +554,18 @@ const initBridge = (w: any): void => { options.method.toLocaleUpperCase() === 'OPTIONS' || options.method.toLocaleUpperCase() === 'TRACE' ) { - const modifiedResource = createProxyUrl(resource.toString(), win); - const response = await win.CapacitorWebFetch( - modifiedResource, - options, - ); - - return response; + if (typeof resource === 'string') { + return await win.CapacitorWebFetch( + createProxyUrl(resource, win), + options, + ); + } else if (resource instanceof Request) { + const modifiedRequest = new Request( + createProxyUrl(resource.url, win), + resource, + ); + return await win.CapacitorWebFetch(modifiedRequest, options); + } } const tag = `CapacitorHttp fetch ${Date.now()} ${resource}`; diff --git a/ios/Capacitor/Capacitor/assets/native-bridge.js b/ios/Capacitor/Capacitor/assets/native-bridge.js index 271c4ba67..31631780a 100644 --- a/ios/Capacitor/Capacitor/assets/native-bridge.js +++ b/ios/Capacitor/Capacitor/assets/native-bridge.js @@ -500,9 +500,13 @@ var nativeBridge = (function (exports) { options.method.toLocaleUpperCase() === 'HEAD' || options.method.toLocaleUpperCase() === 'OPTIONS' || options.method.toLocaleUpperCase() === 'TRACE') { - const modifiedResource = createProxyUrl(resource.toString(), win); - const response = await win.CapacitorWebFetch(modifiedResource, options); - return response; + if (typeof resource === 'string') { + return await win.CapacitorWebFetch(createProxyUrl(resource, win), options); + } + else if (resource instanceof Request) { + const modifiedRequest = new Request(createProxyUrl(resource.url, win), resource); + return await win.CapacitorWebFetch(modifiedRequest, options); + } } const tag = `CapacitorHttp fetch ${Date.now()} ${resource}`; console.time(tag);