Javascript AngularJS-在POST请求主体中发送数据
我试图将POST请求体中的数据发送到AngularJS应用程序中的RESTful API 此请求的当前结构是一个控制器,它获取数据并将数据发送到服务,然后服务从相关的工厂调用请求,如下所示: 控制器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
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;
};