如何在 $http.delete 中发送和排列
How to send and array in $http.delete
我想删除使用 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 相同的方式工作,对吧?顺便说一句,它显示日志 "Gets DELETED" 但没有这样做。
看看这个answer,如果你在正文中发送一些东西,DELETE被忽略。
你应该像这样发送路径:
current/path?id=1&id=2&id=3&id=4
就像GET方法一样,你不能在正文中发送任何东西。
更新
如果您使用示例中的 URL 参数发出请求,您将收到如下对象:
{ id : [1, 2, 3, 4] }
我得到了解决方案!在我的例子中,HTTP 1.1 能够发送 body,但是 header 不能,所以使用 JSON 的内容。因此,通过将 headers: {'Content-Type': 'application/json;charset=utf-8'}
添加到 $http.delete
的 data: 字段,它起作用了,数组被发送了。
我希望这对某人有所帮助。
感谢您的回答!
我想删除使用 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 相同的方式工作,对吧?顺便说一句,它显示日志 "Gets DELETED" 但没有这样做。
看看这个answer,如果你在正文中发送一些东西,DELETE被忽略。
你应该像这样发送路径:
current/path?id=1&id=2&id=3&id=4
就像GET方法一样,你不能在正文中发送任何东西。
更新
如果您使用示例中的 URL 参数发出请求,您将收到如下对象:
{ id : [1, 2, 3, 4] }
我得到了解决方案!在我的例子中,HTTP 1.1 能够发送 body,但是 header 不能,所以使用 JSON 的内容。因此,通过将 headers: {'Content-Type': 'application/json;charset=utf-8'}
添加到 $http.delete
的 data: 字段,它起作用了,数组被发送了。
我希望这对某人有所帮助。
感谢您的回答!