[英]AngularJs $http post request to send data to rails controller
我正在使用Rails MVC,並且正在為各種JavaScript函數使用angularjs(非常新)。 我有一些要通過$ http post方法發送到相應的rails控制器的create方法的ID數組。
我的服務是:
.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無法處理的條目。 我究竟做錯了什么?
根據錯誤消息,我相信您的發布請求將其發送到Rails控制器,但這就是發生錯誤的地方。
可以對Angular進行的一項調整可以幫助進行故障排除,並且通常有一個好的作法是處理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的其他信息: https : //docs.angularjs.org/api/ng/service/ $ http#
希望這會有所幫助,Cliff
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.