javascript - $http.get(...).success 不是函数

标签 javascript angularjs ajax function

我有这个代码:

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() 方法有两个参数:一个 success 和一个 error 回调函数,它们将通过响应对象调用。

使用 then() 方法,将 callback 函数附加到返回的 promise

像这样:

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

   },function (error){

   });
}

参见引用资料 here.

快捷方式 方法也可用。

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

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

您从响应中获得的数据应为 JSON 格式。 JSON 是一种传输数据 的好方法,并且在 AngularJS

中使用起来很容易

两者之间的主要区别是 .then() 调用返回一个 promise(使用从 callback 返回的值解决)而 .success() 是更传统的注册 callbacks 的方式,并且不返回 promise

关于javascript - $http.get(...).success 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41169385/

相关文章:

javascript - ajax PUT 不传输数组

php - 如何在mysql数据库中添加json数据

php - 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用

javascript - 使用 Nightwatch.js 与 Protractor 之间有什么区别

javascript - 减少 A 到 Z 字母组的函数数量

javascript - meteor 现场 Accordion 菜单

javascript - 查找并删除字符串中的特定单词

javascript - 访问父 Controller 重复的当前实例

javascript - AngularJS tdd 与 Jasmine 错误 : Cannot read property '$injector' of undefined

javascript - Ngmap 从 javascript 选择 ng-repeat 标记