From 633cede237cc6ab6a9c3bf9c5e1a619c8c6e0022 Mon Sep 17 00:00:00 2001 From: Hendrixer Date: Sat, 11 Jan 2014 15:20:54 -0800 Subject: [PATCH] fix($http): ensure default headers PUT and POST are different objects Send PUT and POST through copy() to make sure they are not the same. Closes #5742 Closes #5747 Closes #5764 --- src/ng/http.js | 8 ++++---- test/ng/httpSpec.js | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ng/http.js b/src/ng/http.js index 231e683e2b1e..4ca89e4fd3d1 100644 --- a/src/ng/http.js +++ b/src/ng/http.js @@ -111,9 +111,9 @@ function $HttpProvider() { common: { 'Accept': 'application/json, text/plain, */*' }, - post: CONTENT_TYPE_APPLICATION_JSON, - put: CONTENT_TYPE_APPLICATION_JSON, - patch: CONTENT_TYPE_APPLICATION_JSON + post: copy(CONTENT_TYPE_APPLICATION_JSON), + put: copy(CONTENT_TYPE_APPLICATION_JSON), + patch: copy(CONTENT_TYPE_APPLICATION_JSON) }, xsrfCookieName: 'XSRF-TOKEN', @@ -324,7 +324,7 @@ function $HttpProvider() { * to `push` or `unshift` a new transformation function into the transformation chain. You can * also decide to completely override any default transformations by assigning your * transformation functions to these properties directly without the array wrapper. These defaults - * are again available on the $http factory at run-time, which may be useful if you have run-time + * are again available on the $http factory at run-time, which may be useful if you have run-time * services you wish to be involved in your transformations. * * Similarly, to locally override the request/response transforms, augment the diff --git a/test/ng/httpSpec.js b/test/ng/httpSpec.js index d3653a67ee7d..a0417d9ad99c 100644 --- a/test/ng/httpSpec.js +++ b/test/ng/httpSpec.js @@ -1439,6 +1439,12 @@ describe('$http', function() { $http.get('/url'); $httpBackend.flush(); }); + + it('should have seperate opbjects for defaults PUT and POST', function() { + expect($http.defaults.headers.post).not.toBe($http.defaults.headers.put); + expect($http.defaults.headers.post).not.toBe($http.defaults.headers.patch); + expect($http.defaults.headers.put).not.toBe($http.defaults.headers.patch); + }) }); });