2016-12-10 5 views
1

作成したAPIエンドポイントにフォームデータを送信しようとしています。 PostManでテストしてAPIが正常に機能し、データを正常に取得できます。しかし、そのAPIエンドポイントを角度jsの関数に接続すると、次のエラーが発生します。

enter image description here

HERESに自分のコード:

$scope.saveSession = function() { 

    $http.post("/session/survey", $scope.session).success(function(data, status) { 
     $window.location.href = '/'; 

       console.log("Sucessfully getting data" + JSON.stringify(data)); 
    }) 
    } 

注:

$scope.sessionng-modelタグを使用して移入されることを目的とします。たとえば :

<input type="text" ng-model="session.title"> 

編集(コントローラコード):

// This is our controller for the bio page 
var session = angular.module('session', ['sessionService']) 

session.controller('sessionCtrl', function($scope, $http, $window, sessionServices) { 

$scope.session = {}; 

$scope.saveSession = function() { 

    $scope.session.sessionNo = 1; 
    $scope.session.coach = "mmmm"; 
    $scope.session.modules = "wokr place"; 

    //console.log(user); 
    $http.post("/session/survey", $scope.session).success(function(data, status) { 
     $window.location.href = '/'; 
       console.log("Sucessfully getting added bio" + JSON.stringify(data)); 
    }) 
    }; 

}); 
+0

と連鎖することができます$http.post()によって返されます。 – Skywalker

答えて

2

あなたが$http.post().successを使用しているためです。

試してください。

$scope.saveSession = function() { 

$http.post("/session/survey", $scope.session).then(function(data, status) { 
    $window.location.href = '/'; 

      console.log("Sucessfully getting data" + JSON.stringify(data)); 
}) 
} 

私たちは$ httpサービスから "約束"を返すために使います。

希望すると助かります!

4

$ httpオブジェクトに "success"関数が存在しません($ http成功とエラーメソッドはAngular 1.xの古いバージョンでのみ利用できますが、Angular 1.6では削除されています):

公式ドキュメントで
// Simple GET request example: 
$http({ 
    method: 'GET', 
    url: '/someUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
}); 

もっとhttps://docs.angularjs.org/api/ng/service/ $ HTTP

+1

$ http 'success'と' error'メソッドは古いバージョンのAngular 1.xでも利用できましたが、しばらくは非推奨となり、Angular 1.6では削除されています。だから、 'success'関数を使ってたくさんの古いAngularコードを見ているでしょう。今度は変更に合わせて '.then'に切り替えましょう。 –

+0

良い点、ありがとう:) –

7

.success()が本当に機能ではないためだこと。 the documentation explainsとして、約束は、あなたが更新質問を参照@Sajeetharan .then()

$http.post('/someUrl', data, config).then(successCallback, errorCallback); 
関連する問題