From 1504792765a89bfe5b07041979a86218cace9c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Gabriel=20Quaresma?= Date: Sat, 28 May 2022 06:52:50 -0300 Subject: [PATCH] Fixing content-type header repeated (#4745) Co-authored-by: Jay --- lib/core/dispatchRequest.js | 4 ++++ test/specs/transform.spec.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/core/dispatchRequest.js b/lib/core/dispatchRequest.js index 997d4c952e..6ac7bc0e42 100644 --- a/lib/core/dispatchRequest.js +++ b/lib/core/dispatchRequest.js @@ -5,6 +5,7 @@ var transformData = require('./transformData'); var isCancel = require('../cancel/isCancel'); var defaults = require('../defaults'); var CanceledError = require('../cancel/CanceledError'); +var normalizeHeaderName = require('../helpers/normalizeHeaderName'); /** * Throws a `CanceledError` if cancellation has been requested. @@ -40,6 +41,9 @@ module.exports = function dispatchRequest(config) { config.transformRequest ); + normalizeHeaderName(config.headers, 'Accept'); + normalizeHeaderName(config.headers, 'Content-Type'); + // Flatten headers config.headers = utils.merge( config.headers.common || {}, diff --git a/test/specs/transform.spec.js b/test/specs/transform.spec.js index f7e62cb957..1ae052f5b9 100644 --- a/test/specs/transform.spec.js +++ b/test/specs/transform.spec.js @@ -177,4 +177,24 @@ describe('transform', function () { done(); }); }); + + it('should normalize \'content-type\' header when using a custom transformRequest', function (done) { + var data = { + foo: 'bar' + }; + + axios.post('/foo', data, { + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + transformRequest: [ + function () { + return 'aa=44' + } + ] + }); + + getAjaxRequest().then(function (request) { + expect(request.requestHeaders['Content-Type']).toEqual('application/x-www-form-urlencoded'); + done(); + }); + }); });