Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-在POST请求主体中发送数据_Javascript_Angularjs_Rest_Post - Fatal编程技术网

Javascript AngularJS-在POST请求主体中发送数据

Javascript AngularJS-在POST请求主体中发送数据,javascript,angularjs,rest,post,Javascript,Angularjs,Rest,Post,我试图将POST请求体中的数据发送到AngularJS应用程序中的RESTful API 此请求的当前结构是一个控制器,它获取数据并将数据发送到服务,然后服务从相关的工厂调用请求,如下所示: 控制器 userService.saveReport(vm.user.id,searchParams) 服务 service.saveReport = function (id, searchData) { var deferred = $q.defer(); user.saveR

我试图将POST请求体中的数据发送到AngularJS应用程序中的RESTful API

此请求的当前结构是一个控制器,它获取数据并将数据发送到服务,然后服务从相关的工厂调用请求,如下所示:

控制器

userService.saveReport(vm.user.id,searchParams)

服务

service.saveReport = function (id, searchData) {
      var deferred = $q.defer();

      user.saveReport({ userID: id, searchData: searchData }, function(response) {
        deferred.resolve(response);
      }, function(e) {
        deferred.reject(e);
      });

      return deferred.promise;
    };
工厂

    function user($resource, $localStorage, constants) {
    return $resource(constants.API_URL + '/users', { userID: '@userID' }, {
      getReports: {
        method: 'GET',
        url: constants.API_URL + '/users/:userID/reports',
        format: 'json',
        headers: {
          'Accept': 'application/vnd.abp.v1+json',
          'X-Mode': function() {
            return $localStorage.get('mode');
          }
        }
      },
      saveReport: {
        method: 'POST',
        url: constants.API_URL + '/users/:userID/reports',
        format: 'json',
        headers: {
          'Accept': 'application/vnd.abp.v1+json',
          'X-Mode': function() {
            return $localStorage.get('mode');
          }
        }
      }
    });
  }

  angular
    .module('abp')
    .factory('user', user);

})();
我看到过许多帖子,其中声明
$resource
允许发送
数据:
,以形成请求主体,但这似乎不起作用。我已尝试将
searchData:'@searchData'
添加到
$resource
调用所允许的参数中,然后将其添加到数据部分,如下所示,但这不起作用(为简洁起见进行了压缩):


如何在POST请求正文中发送此请求的数据?

好的,因此我现在通过更改在服务中发送
搜索数据的方式来实现此功能。我的控制器工厂保持不变,但我已将服务更改为以下内容,似乎工作非常完美:

service.saveReport = function (id, searchData) {
      var deferred = $q.defer();

      user.saveReport({ userID: id }, searchData, function(response) {
        deferred.resolve(response);
      }, function(e) {
        deferred.reject(e);
      });

      return deferred.promise;
    };

这确实是您的错误,请参阅描述返回对象的部分:非获取“类”操作:
Resource.action([parameters]、postData、[success]、[error])
。始终使用RTFM;)
service.saveReport = function (id, searchData) {
      var deferred = $q.defer();

      user.saveReport({ userID: id }, searchData, function(response) {
        deferred.resolve(response);
      }, function(e) {
        deferred.reject(e);
      });

      return deferred.promise;
    };