title: Angularjs $http delete with $q promise leads to TypeError: object is not a function
body: <p>The following snippet returns the following error: <code>TypeError: object is not a function</code></p>
  
  <pre><code>service.deleteItem = function(itemId) {
      var def = $q.defer();
      $http.delete(SERVER_REST_PATH + '/items/' + itemId)
          .success(function() {
              def.resolve();
          }).error(function(data, status) {
              def.reject("Error deleting the item");
          });
      return def.promise();
  };
  </code></pre>
  
  <p>If I rewrite it as the following it works:</p>
  
  <pre><code>service.deleteItem = function(itemId) {
      return $http.delete(SERVER_REST_PATH + '/items/' + itemId);
  };
  </code></pre>
  
  <p>All other $http methods that I use(i.e GET, PUT, POST) in my app are wrapped with the $q the same way and they don't have this issue. Only the DELETE is causing this issue. When I debug it it just skips the $http's success(), error() and then() methods. I'm using angular version 1.3.13.</p>