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

时间:2017-01-03 16:17:25

标签: angularjs curl get

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

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)。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

您的控制器应如下所示:

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

  });

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

  1. 第一个对象是指参数。
  2. 第二个参数将引用您要发布的数据。
  3. $ Resource服务的非GET操作:资源。([参数],postData,[成功],[错误])

    您的服务:

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

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