Ruby on rails AngularJs$http post向rails控制器发送数据的请求
我正在rails mvc上工作,并且我正在使用angularjs(对它来说很新)来实现各种javascript函数。我有一些ID的数组,我想通过$HTTPPOST方法将它们发送到相应rails控制器的create方法 我的服务是:Ruby on rails AngularJs$http post向rails控制器发送数据的请求,ruby-on-rails,angularjs,http,post,Ruby On Rails,Angularjs,Http,Post,我正在rails mvc上工作,并且我正在使用angularjs(对它来说很新)来实现各种javascript函数。我有一些ID的数组,我想通过$HTTPPOST方法将它们发送到相应rails控制器的create方法 我的服务是: .service('teamService' , function ($http) { var TeamService = {}; TeamService.saveTeam = function(player_ids) { $http.post('/use
.service('teamService' , function ($http) {
var TeamService = {};
TeamService.saveTeam = function(player_ids) {
$http.post('/user_teams',player_ids)
.success(function(data,status){
data = player_ids;
status = true;
});
};
$scope.saveTeam = function () {
var mf = $scope.getIDs($scope.Midfielders.data);
var df = $scope.getIDs($scope.Defenders.data);
var fw = $scope.getIDs($scope.Forward.data);
var gk = $scope.getIDs($scope.GoalKeeper.data);
var player_ids = mf.concat(df,fw,gk);
teamService.saveTeam(player_ids);
};
相应的角度控制器功能为:
.service('teamService' , function ($http) {
var TeamService = {};
TeamService.saveTeam = function(player_ids) {
$http.post('/user_teams',player_ids)
.success(function(data,status){
data = player_ids;
status = true;
});
};
$scope.saveTeam = function () {
var mf = $scope.getIDs($scope.Midfielders.data);
var df = $scope.getIDs($scope.Defenders.data);
var fw = $scope.getIDs($scope.Forward.data);
var gk = $scope.getIDs($scope.GoalKeeper.data);
var player_ids = mf.concat(df,fw,gk);
teamService.saveTeam(player_ids);
};
当我在调用控制器saveTeam函数的视图中单击按钮时,控制台中会显示错误422无法处理条目。我做错了什么?根据错误消息,我相信您的post请求会发送到Rails控制器,但这就是错误发生的地方 角度方面的一个调整可以帮助进行故障排除,而且通常是一个很好的实践,就是使用一个函数来处理http调用的错误情况 所以不是
$http.post('/user_teams',player_ids)
.success(function(data,status){
data = player_ids;
status = true;
});
也许可以尝试以下方式:
$http.post('/user_teams',player_ids)
.then(function(data,status){
data = player_ids;
status = true;
},function(error){
//handle what happens if there is an error with the http post call
console.log("Error occurred: " + error);
});
.then()的第一个函数是处理http调用的成功结果的函数,第二个函数只有在http调用发生错误时才会被调用
Angular的$http:$http的其他信息#
希望这有帮助,
克里夫你完全走错了路。阅读
$http
,$q
的文档,然后继续你的工作。