$http.get(...).成功不是一个功能

2022-08-30 05:06:52

我有这个代码:

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

在我的本地环境中,工作正常,但在服务器中,返回以下错误:

TypeError: $http.get(...)。成功不是一个功能

有什么想法吗?谢谢


答案 1

语法在Angular v1.4.3之前是正确的。.success

对于 Angular v.1.6 之前的版本,您必须使用方法。该方法采用两个参数:a 和一个回调,它将使用响应对象调用。thenthen()successerror

使用该方法,将函数附加到返回的 。then()callbackpromise

像这样:

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是传输数据的好方法,并且在AngularJS中易于使用JSON

2 之间的主要区别在于调用返回 a(使用从 a 返回的值解析),而这是更传统的注册方式,不返回 ..then()promisecallback.success()callbackspromise


答案 2

这可能是多余的,但上面投票最多的答案说,这对我不起作用,因为Angular版本。相反,在块内使用,我得到了我正在寻找的json数据。.then(function (success)1.5.8responseresponse.data

$http({
    method: 'get', 
    url: 'data/data.json'
}).then(function (response) {
    console.log(response, 'res');
    data = response.data;
},function (error){
    console.log(error, 'can not get data.');
});