2016-10-12 1 views
2

http postを使用して作成したタグを削除します。ここで私が試したコードです。

$http({ 
    method: 'DELETE', 
    url: '/api/tags', 
    data: [vm.tags.name] 
}).success(function(data) { 
    console.log('Gets DELETED'); 
    vm.tags.name = data; 
}).error(function(data) { 
    console.log('Does not get DELETED'); 
}); 

しかし、これはうまくいかず、[null]で配列を送信するだけです。それで私はここで見たり理解していないことがあります。つまり、POSTが動作すれば、DELETEと同じように動作するはずです。ところで、ログは「削除されました」と表示されますが、削除されませんでした。

答えて

3

!私の場合、HTTP 1.1は本文を送信できましたが、ヘッダーはJSONのコンテンツを使用できませんでした。したがって、$http.deleteのdata:フィールドにheaders: {'Content-Type': 'application/json;charset=utf-8'}を追加することによって、それが機能し、配列が送信されました。

私はこれが誰かを助けてくれることを願っています。

ありがとうございます!

1

このanswerを見ると、DELETEの本文に何かを送ると無視されます。

次のようなパスに送信する必要があります:

current/path?id=1&id=2&id=3&id=4 

それはあなたが身体に何かを送信することが許可されていないGETメソッド、のようなものです。

UPDATE

あなたが例のURLパラメータを持つリクエストを行う場合は、次のようにオブジェクトを受け取ります:私は解決策を持って

{ id : [1, 2, 3, 4] } 
+0

しかし、記事では、HTTP 1.1ではこれが可能ですか? – d8ta

+0

[OK]を、それが問題だと仮定することができます、私は試したパスで配列を送信することができます: 'api/tags /' + [myarray] – d8ta

+0

[HTTP削除のためのドキュメント](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7)に記載されているパラメータのみがURIに含まれていることがわかります。 –

関連する問題