2
0
mirror of https://github.com/tenrok/axios.git synced 2026-05-15 11:59:42 +03:00

Allow unsetting headers by passing null (#382) (#1845)

Co-authored-by: Jay <jasonsaayman@gmail.com>
This commit is contained in:
Martti Laine
2020-06-04 20:57:54 +02:00
committed by GitHub
parent 4b3947aa59
commit 487941663b
4 changed files with 33 additions and 6 deletions
+7
View File
@@ -47,6 +47,13 @@ module.exports = function dispatchRequest(config) {
}
);
// Remove header where value is null
utils.forEach(config.headers, function deleteNullValueHeaders(value, key) {
if (value === null) {
delete config.headers[key];
}
});
var adapter = config.adapter || defaults.adapter;
return adapter(config).then(function onAdapterResolution(response) {
+5
View File
@@ -294,6 +294,11 @@ function deepMerge(/* obj1, obj2, obj3, ... */) {
}
}
var lastArgument = arguments[arguments.length - 1];
if (lastArgument === null || typeof lastArgument === 'undefined') {
return lastArgument;
}
for (var i = 0, l = arguments.length; i < l; i++) {
forEach(arguments[i], assignValue);
}
+15
View File
@@ -42,6 +42,21 @@ describe('headers', function () {
});
});
it('should not set header if value is null', function (done) {
expect(axios.defaults.headers.common['Accept']).toEqual('application/json, text/plain, */*');
axios('/foo', {
headers: {
Accept: null
}
});
getAjaxRequest().then(function (request) {
expect(typeof request.requestHeaders['Accept']).toEqual('undefined');
done();
});
});
it('should add extra headers for post', function (done) {
var headers = axios.defaults.headers.common;
+6 -6
View File
@@ -26,7 +26,7 @@ describe('utils::deepMerge', function () {
it('should deepMerge recursively', function () {
var a = {foo: {bar: 123}};
var b = {foo: {baz: 456}, bar: {qux: 789}};
var b = {foo: {baz: 456}, bar: {qux: null}};
expect(deepMerge(a, b)).toEqual({
foo: {
@@ -34,7 +34,7 @@ describe('utils::deepMerge', function () {
baz: 456
},
bar: {
qux: 789
qux: null
}
});
});
@@ -54,13 +54,13 @@ describe('utils::deepMerge', function () {
});
it('handles null and undefined arguments', function () {
expect(deepMerge(undefined, undefined)).toEqual({});
expect(deepMerge(undefined, undefined)).toEqual(undefined);
expect(deepMerge(undefined, {foo: 123})).toEqual({foo: 123});
expect(deepMerge({foo: 123}, undefined)).toEqual({foo: 123});
expect(deepMerge({foo: 123}, undefined)).toEqual(undefined);
expect(deepMerge(null, null)).toEqual({});
expect(deepMerge(null, null)).toEqual(null);
expect(deepMerge(null, {foo: 123})).toEqual({foo: 123});
expect(deepMerge({foo: 123}, null)).toEqual({foo: 123});
expect(deepMerge({foo: 123}, null)).toEqual(null);
});
});