mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
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
This commit is contained in:
parent
936101041a
commit
e9a222418a
2 changed files with 20 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue