Resolve opening connection before previsouly setting headers

This commit is contained in:
igoroctaviano 2021-06-03 12:08:33 -03:00
parent 1e2773345a
commit 98fcabfcb5

View File

@ -30,8 +30,8 @@ const xhrRetryRequestHook = (request, metadata) => {
const originalOnReadyStateChange = request.onreadystatechange; const originalOnReadyStateChange = request.onreadystatechange;
/** Overriding/extending XHR function */ /** Overriding/extending XHR function */
request.onreadystatechange = function onReadyStateChange() { request.onreadystatechange = function onReadyStateChange(...args) {
originalOnReadyStateChange.call(request); originalOnReadyStateChange.apply(request, args);
if (retryOptions.retryableStatusCodes.includes(request.status)) { if (retryOptions.retryableStatusCodes.includes(request.status)) {
const errorMessage = `Attempt to request ${url} failed.`; const errorMessage = `Attempt to request ${url} failed.`;
@ -40,10 +40,14 @@ const xhrRetryRequestHook = (request, metadata) => {
} }
}; };
console.warn(`Requesting ${url}... (attempt: ${currentAttempt})`); /** Call open only on retry (after headers and other things were set in the xhr instance) */
request.open(method, url, true); if (currentAttempt > 1) {
originalRequestSend.call(request, ...args); console.warn(`Requesting ${url}... (attempt: ${currentAttempt})`);
request.open(method, url, true);
}
}); });
originalRequestSend.apply(request, args);
} }
/** Overriding/extending XHR function */ /** Overriding/extending XHR function */