aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Bin2013-09-03 18:19:38 -0300
committerBrian Ford2013-10-01 14:02:00 -0700
commite9a222418a029d830698444cf95bf13f8ad75805 (patch)
tree1c0ab955f4f2d3abf493fb6fd59707a62cf09dda
parent936101041a9a1f1cf9fecf6b5fcfae206cd15424 (diff)
downloadangular.js-e9a222418a029d830698444cf95bf13f8ad75805.tar.bz2
fix($httpBackend): set headers with falsy values
This is a breaking change. To migrate to the new behavior, delete or set headers to `undefined` to avoid having them sent. To restore the old behavior, override `$httpBackendProvider` with the old implementation. Closes #2984
-rw-r--r--src/ng/httpBackend.js4
-rw-r--r--test/ng/httpBackendSpec.js17
2 files changed, 20 insertions, 1 deletions
diff --git a/src/ng/httpBackend.js b/src/ng/httpBackend.js
index 99da6549..3e7406b0 100644
--- a/src/ng/httpBackend.js
+++ b/src/ng/httpBackend.js
@@ -56,7 +56,9 @@ function createHttpBackend($browser, XHR, $browserDefer, callbacks, rawDocument,
var xhr = new XHR();
xhr.open(method, url, true);
forEach(headers, function(value, key) {
- if (value) xhr.setRequestHeader(key, value);
+ if (isDefined(value)) {
+ xhr.setRequestHeader(key, value);
+ }
});
// In IE6 and 7, this might be called synchronously when xhr.send below is called and the
diff --git a/test/ng/httpBackendSpec.js b/test/ng/httpBackendSpec.js
index 5d2654a9..faec5737 100644
--- a/test/ng/httpBackendSpec.js
+++ b/test/ng/httpBackendSpec.js
@@ -101,6 +101,22 @@ describe('$httpBackend', function() {
});
});
+ it('should set requested headers even if they have falsy values', function() {
+ $backend('POST', 'URL', null, noop, {
+ 'X-header1': 0,
+ 'X-header2': '',
+ 'X-header3': false,
+ 'X-header4': undefined
+ });
+
+ xhr = MockXhr.$$lastInstance;
+
+ expect(xhr.$$reqHeaders).toEqual({
+ 'X-header1': 0,
+ 'X-header2': '',
+ 'X-header3': false
+ });
+ });
it('should abort request on timeout', function() {
callback.andCallFake(function(status, response) {
@@ -388,6 +404,7 @@ describe('$httpBackend', function() {
expect(callback).toHaveBeenCalled();
expect(callback.mostRecentCall.args[0]).toBe(404);
});
+
});
});