从 AngularJS 发送类似于"curl -d"的 POST 请求



我需要从我的 AngularJS 应用程序发送一个类似于curl -d命令的POST请求。

curl http://localhost:80; --data "JSONOBJ"

这是service

Services.factory('Set', ['$resource',
  function($resource){
    return $resource('http://localhost:80/?value=:JSONOBJ', {}, {
      query: {method:'POST'}
    });
  }]);

controller代码:

 $scope.pass = function(data) {
  var newData = [];
  newData.push({
      data: [{
          "id": data,
          "type": "record"]}
  });
  Set.query({
      value: newData
  }).$promise.then(function(data) {
    //
  });
};    

但是我在发送请求后从服务器获得404。我认为我没有正确传递数据(卷曲中的-d)。知道我该如何解决这个问题吗?

你应该使用的方法是post()而不是query()。save() 函数发出一个 POST 请求。您正在覆盖用于GET调用而不是POST的query()方法。

您的控制器应如下所示:

Set.save({
      ego: ego},{
      data: JSON.stringify(editItems)
  }).$promise.then(function(result) {
  });

请注意,我在保存调用中添加了两个参数

  1. 第一个对象引用参数。
  2. 第二个参数将引用要发布的数据。

$Resource服务的非 GET 操作:资源。([参数], 后数据, [成功], [错误])

您的服务:

AppServices.factory('Set', ['$resource',
  function($resource){
    return $resource('http://localhost:7776/');
  }]);

注意:对于 POST 请求,您可能仍有查询字符串参数,但这并不常见,并且与您正在发布的数据没有任何关系。

最新更新