$ resource を使用して、DELETEリクエストでリクエスト本文を送信する必要があります
これを行うために私が見ることができた唯一の方法は、変更することでした:
https://github.com/angular/angular.js/blob/master/src/ngResource/resource.js
From
var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH';
To
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'};
または同様の何か...私はこれをググったが、おそらく私は明らかな何かを見逃した(初めてではない)。事前に助けをありがとう。
これは機能します。
$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);
});
};
あなたは注入することができます$http
( http://docs.angularjs.org/api/ng.%24http#Usage )コンポーネントをいずれかのコントローラーに追加し、次のように使用します。
$http({method: 'DELETE', url: 'www.url.com', headers: {'X-MY-HEADER': 'MY_VALUE'}});
私はこれがあなたが期待したことを望みます。