1
我想在我的AngularJS應用程序中將POST請求正文中的數據發送到RESTful API。AngularJS - 在POST請求主體中發送數據
我此請求當前結構是控制器其抓住數據和發送給服務,然後調用從其關聯工廠請求,如下所示:
控制器
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
允許data:
是通過發送形成請求的主體,但是這似乎並不奏效。我試着添加searchData: '@searchData'
到由$resource
呼叫允許PARAMS,然後添加到數據部分具體步驟如下,但這不起作用(濃縮爲簡單起見):
return $resource(constants.API_URL + '/users', { userID: '@userID', searchData: '@searchData' }, {
saveReport: {
method: 'POST',
url: constants.API_URL + '/users/:userID/reports',
format: 'json',
data: ':searchData',
headers: {
'Accept': 'application/vnd.abp.v1+json',
'X-Mode': function() {
return $localStorage.get('mode');
}
}
}
}
我怎麼能發送這個請求的數據在POST請求的主體中?
這的確是你的錯誤,請參閱https://docs.angularjs.org/api/ngResource/service/$ resource,描述返回對象的部分:* non-GET「class」actions:'Resource.action([parameters],postData,[success],[error])'*。始終RTFM;) – sp00m