From bc9af51b1886d1b3529617702f2a21a6c0ed5d92 Mon Sep 17 00:00:00 2001 From: Dmitriy Mozgovoy Date: Mon, 25 Sep 2023 02:44:30 +0300 Subject: [PATCH] fix(formdata): fixed automatic addition of the `Content-Type` header for FormData in non-browser environments; (#5917) --- lib/adapters/xhr.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/adapters/xhr.js b/lib/adapters/xhr.js index bbae45fb9c..18b39f2aca 100644 --- a/lib/adapters/xhr.js +++ b/lib/adapters/xhr.js @@ -61,11 +61,16 @@ export default isXHRAdapterSupported && function (config) { } } + let contentType; + if (utils.isFormData(requestData)) { if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) { requestHeaders.setContentType(false); // Let the browser set it - } else { - requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks + } else if(!requestHeaders.getContentType(/^\s*multipart\/form-data/)){ + requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks + } else if(utils.isString(contentType = requestHeaders.getContentType())){ + // fix semicolon duplication issue for ReactNative FormData implementation + requestHeaders.setContentType(contentType.replace(/^\s*(multipart\/form-data);+/, '$1')) } }