Angularjs 在我的情况下,如何提出休息请求?

Angularjs 在我的情况下,如何提出休息请求?,angularjs,rest,http,Angularjs,Rest,Http,我正在阅读一个RESTFULAPI文档,其中一个PUT方法需要发送request body 医生提到 PUT /api/v1.2/product/{id} 像请求体一样 { "name" : "Toy", "description" : "Kids toy", "price" : 25 } 我当前的请求代码 $http.put('/api/v1.2/product/' + ID); 我正在尝试使用Angular httprequest进行调用,但不确定如何使用请求主体进

我正在阅读一个
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
request进行调用,但不确定如何使用请求主体进行请求。有人能帮我吗?非常感谢

数据在第二个参数中进入
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;
    });

有关更多信息,请参见

角度定义了一些语法,您必须记住,否则您将什么也不做。你可以试试

JS代码

   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;
        });
    };
    public HttpResponseMessage Put(int ID, Product product)
    {

    }
API代码

   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;
        });
    };
    public HttpResponseMessage Put(int ID, Product product)
    {

    }
我已经在代码项目中写了一篇文章。从这里您可以获得$http get、put、delete的完整概念。

可能提供了一个更好的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){ });
查看文档:

它可以通过承诺做一些非常酷的事情(不是说$http不能,$resource只是比IMHO好一点)


默认情况下,它提供GET、POST和DELETE方法。PUT是一种特殊情况,因此我们需要在上面指定它。

文档还提到了如何传递数据: