1. ホーム
  2. javascript

[解決済み] $http.get(...).success は関数ではありません。

2022-02-14 16:15:40

質問

次のようなコードがあります。

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

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

<ブロッククオート

TypeError: $http.get(...).success is not a function.

何かアイデアはありますか?ありがとうございます。

解決方法は?

その .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 の形式を使用します。 JSON を転送するのに最適な方法です。 データ の中で簡単に使用することができます。 AngularJS

この2つの大きな違いは .then() を呼び出すと promise (から返された値で解決される)。 callback ) 一方 .success() は、より伝統的な登録方法です。 callbacks を返さないので promise .