$http.get(...).success は関数ではありません 質問する

$http.get(...).success は関数ではありません 質問する

私はこのコードを持っています:

app.controller('MainCtrl', function ($scope, $http){
  $http.get('api/url-api')
    .success(function (data, status, headers, config){
     }
}

ローカル環境では問題なく動作しますが、サーバーでは次のエラーが返されます。

TypeError: $http.get(...).success は関数ではありません

何かアイデアはありますか?ありがとう

ベストアンサー1

構文.successは Angular v1.4.3 までは正しかったです。

Angular v.1.6 までのバージョンでは、thenメソッドを使用する必要があります。このメソッドは、レスポンス オブジェクトとともに呼び出されるコールバックとthen()、の 2 つの引数を取ります。successerror

メソッドを使用してthen()callback返された に関数をアタッチしますpromise

このようなもの:

app.controller('MainCtrl', function ($scope, $http){
   $http({
      method: 'GET',
      url: 'api/url-api'
   }).then(function (response){

   },function (error){

   });
}

参照ここ。

Shortcut方法も利用可能です。

$http.get('api/url-api').then(successCallback, errorCallback);

function successCallback(response){
    //success code
}
function errorCallback(error){
    //error code
}

応答から取得するデータは、JSON形式になっていることが予想されます。翻訳輸送するのに最適な方法ですデータ、そして簡単に使用できますアンギュラー

2 つの主な違いは、.then()call はpromise( から返された値で解決されるcallback)を返すのに対し、 は.success()より伝統的な登録方法でcallbacksあり を返さないことですpromise

おすすめ記事