我正在阅读RESTFUL
API文档,其中一种PUT方法需要发送request body
。
文档提及
PUT /api/v1.2/product/{id}
请求正文
{
"name" : "Toy",
"description" : "Kids toy",
"price" : 25
}
我当前的请求代码。
$http.put('/api/v1.2/product/' + ID);
我正在尝试使用Angular http
请求进行调用,但不确定如何使用请求正文发出请求。有人可以帮我吗?非常感谢!
答案 0 :(得分:2)
数据在第二个参数中传到put
。例如:
var data = {
"name" : "Toy",
"description" : "Kids toy",
"price" : 25
};
$http.put('/api/v1.2/product/' + ID, data)
.success(function(response, status, headers, config){
//do something with response here.
})
.error(function(response, status, headers, config){
//handle error here.
$scope.error_message = response.error_message;
});
有关详细信息,请参阅here
答案 1 :(得分:0)
角度定义了一些语法,你必须掌握另一个明智的你不会做任何事情。你可以试试
JS CODE
var data = {
"name" : "Toy",
"description" : "Kids toy",
"price" : 25
};
$scope.save = function () {
$http.put('/api/v1.2/product/' + ID, data).success(function (data) {
}).error(function (data) {
$scope.error = "An Error has occured while Saving customer! " + data;
$scope.loading = false;
});
};
API代码
public HttpResponseMessage Put(int ID, Product product)
{
}
我在代码项目here中写了一篇文章。从这里你可以得到$ http get,put,delete的完整概念。
答案 2 :(得分:0)
$resource可能提供更好的api(虽然仍然使用引擎盖下的$ http)
鉴于您的数据:
var data = {
"name" : "Toy",
"description" : "Kids toy",
"price" : 25
};
设置资源
var Product = $resource('/api/v1.2/product/:id', { 'put': { method:'PUT' } });
然后用它来发出请求,你只需要:
Product.put({ id: ID }, data);
如果您想处理一个或多个错误,只需传递回调:
Product.put({ id: ID }, data, function(data){ }, function(error){ });
查看文档:{{3}}
它可以用承诺做一些非常酷的东西(不是$ http可以' t,$资源只是更好一点恕我直言)
默认提供GET,POST和DELETE方法。 PUT是一个特例,这就是为什么我们需要在上面指定它。