From 3eab34ca874213a4db463d33ae1f310eb32709c7 Mon Sep 17 00:00:00 2001 From: Jen Bourey Date: Fri, 4 Oct 2013 12:02:18 -0700 Subject: [PATCH] fix(ngResource): Remove request body from $delete Prevent the obj.$delete instance method from sending the resource as the request body. This commit uses the existing hasBody boolean to only set httpConfig.data for methods which should have a request body. Closes #4280 --- src/ngResource/resource.js | 2 +- test/ngResource/resourceSpec.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index a86c00ec4dd6..d330f737e4c6 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -466,7 +466,7 @@ angular.module('ngResource', ['ng']). } }); - httpConfig.data = data; + if (hasBody) httpConfig.data = data; route.setUrlParams(httpConfig, extend({}, extractParams(data, action.params || {}), params), action.url); var promise = $http(httpConfig).then(function(response) { diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 2bf40a2cb515..550b44326ed9 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -32,6 +32,16 @@ describe("resource", function() { }); + it('should not include a request body when calling $delete', function() { + $httpBackend.expect('DELETE', '/fooresource', null).respond({}); + var Resource = $resource('/fooresource'); + var resource = new Resource({ foo: 'bar' }); + + resource.$delete(); + $httpBackend.flush(); + }); + + it("should build resource", function() { expect(typeof CreditCard).toBe('function'); expect(typeof CreditCard.get).toBe('function');