我应该为某个网址发送 PUT 查询。 但是如果它包含任何正文(JSON,例如{" id":1}),请休息拒绝我的查询。 当我使用ngResource而不是$ http时,查询已经包含一个正文。我该如何删除它?
预期网址示例:
http://some.com/rest/some/1/smth?method=start
网址包含:id param,这就是为什么我的工厂看起来像这样:
.factory('ApiResourceFactory', ['$resource', function ($resource) {
return {
payment: $resource('http://some.com/rest/some/:id/smth',
{orderId: '@id'},
{
start: {method: "PUT", 'params': {'method': "start"}},
//...
}
)
}
}])
这就是我如何使用它:
var id = 1;
ApiResourceFactory.payment.start({id: id}, function () {
//on success
}, function (responce) {
//on error
});
问题是:" id " param不仅在url中发送,而且在请求体中发送(请求有效负载)为{" id":1}。
没有正文(例如,当我使用$ http时),查询成功,但是机构服务器拒绝我的查询。
因此。 怎么可能我告诉ngResource清楚或不填充身体?
答案 0 :(得分:1)
$resource
的角度文档不是很好,但是如果你看一下文档中的最后一个例子,你就会得到答案。请参阅"创建自定义' PUT'请求
"
您设置params
的方式不正确。如果您使用@
,则参数匹配从正文内容发生。您无需提供params
对象。对start方法的调用也略有不同。
在这里查看我的小提琴http://jsfiddle.net/cmyworld/wLQnq/