Что такое чистый способ отправки тела с запросом DELETE?
Мне нужно отправить тело запроса с моими запросами DELETE, используя $resource
Единственный способ, которым я мог это сделать, - изменить:
https://github.com/angular/angular.js/blob/master/src/ngResource/resource.js
С
var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH';
Для
var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH' || action.method == 'DELETE';
Есть ли лучший способ переопределить это? Как и при изменении заголовка типа контента, вы можете:
$httpProvider.defaults.headers["delete"] = {'Content-Type': 'application/json;charset=utf-8'};
Или что-то подобное... Ive googled это, но, возможно, Ive пропустил что-то очевидное (не в первый раз). Спасибо за любую помощь заранее.
Ответы
Ответ 1
Это работает.
$scope.delete = function(object) {
$http({
url: 'domain/resource',
method: 'DELETE',
data: {
id: object.id
},
headers: {
"Content-Type": "application/json;charset=utf-8"
}
}).then(function(res) {
console.log(res.data);
}, function(error) {
console.log(error);
});
};
Ответ 2
Вы можете вставить компонент $http
(http://docs.angularjs.org/api/ng.%24http#Usage) в один из ваших контроллеров и используя его следующим образом:
$http({method: 'DELETE', url: 'www.url.com', headers: {'X-MY-HEADER': 'MY_VALUE'}});
Надеюсь, это то, что вы ожидали.
Ответ 3
Вы должны иметь возможность называть "удалить" на своем ресурсе, как описано в документации https://docs.angularjs.org/api/ngResource/service/ $resource