我有这个代码:
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/