mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-27 14:44:07 +00:00
Merge branch 'main' into feat/websocket-engine
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
const axios = require('axios');
|
||||
const { CLI_VERSION } = require('../constants');
|
||||
const { addCookieToJar, getCookieStringForUrl } = require('./cookies');
|
||||
const { createFormData } = require('./form-data');
|
||||
|
||||
const redirectResponseCodes = [301, 302, 303, 307, 308];
|
||||
const METHOD_CHANGING_REDIRECTS = [301, 302, 303];
|
||||
@@ -38,6 +39,28 @@ const createRedirectConfig = (error, redirectUrl) => {
|
||||
delete requestConfig.headers['Content-Length'];
|
||||
delete requestConfig.headers['content-type'];
|
||||
delete requestConfig.headers['Content-Type'];
|
||||
} else {
|
||||
// For 307, 308 and other status codes: preserve method and body
|
||||
if (requestConfig.data && typeof requestConfig.data === 'object' &&
|
||||
requestConfig.data.constructor && requestConfig.data.constructor.name === 'FormData') {
|
||||
|
||||
const formData = requestConfig.data;
|
||||
if (formData._released || (formData._streams && formData._streams.length === 0)) {
|
||||
if (error.config._originalMultipartData && error.config.collectionPath) {
|
||||
const recreatedForm = createFormData(error.config._originalMultipartData, error.config.collectionPath);
|
||||
requestConfig.data = recreatedForm;
|
||||
const formHeaders = recreatedForm.getHeaders();
|
||||
Object.assign(requestConfig.headers, formHeaders);
|
||||
|
||||
// preserve the original data for potential future redirects
|
||||
requestConfig._originalMultipartData = error.config._originalMultipartData;
|
||||
requestConfig.collectionPath = error.config.collectionPath;
|
||||
}
|
||||
} else {
|
||||
requestConfig._originalMultipartData = error.config._originalMultipartData;
|
||||
requestConfig.collectionPath = error.config.collectionPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return requestConfig;
|
||||
|
||||
Reference in New Issue
Block a user