我有这个代码:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
在我的本地环境中,工作正常,但在服务器中,返回此错误:
类型错误:$http.get(...).success 不是函数
有任何想法吗?谢谢
我有这个代码:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
在我的本地环境中,工作正常,但在服务器中,返回此错误:
类型错误:$http.get(...).success 不是函数
有任何想法吗?谢谢
.success
直到 Angular v1.4.3 ,语法都是正确的。
对于 Angular v.1.6 以下的版本,您必须使用then
method。该then()
方法有两个参数:asuccess
和一个error
回调,它将被一个响应对象调用。
使用该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()
call 返回 a promise
(使用从 a 返回的值解析callback
).success()
而是更传统的注册方式callbacks
并且不返回 a promise
。
这可能是多余的,但上面投票最多的答案说.then(function (success)
,从 Angular 版本开始,这对我不起作用1.5.8
。而是使用response
then 在块内response.data
得到了我正在寻找的 json 数据。
$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.');
});
如果您在 2017 年 10 月 21 日之前尝试使用 AngularJs 1.6.6,则以下参数将作为 .success 使用并且已耗尽。.then() 方法有两个参数:一个响应和一个错误回调,它将被一个响应对象调用。
$scope.login = function () {
$scope.btntext = "Please wait...!";
$http({
method: "POST",
url: '/Home/userlogin', // link UserLogin with HomeController
data: $scope.user
}).then(function (response) {
console.log("Result value is : " + parseInt(response));
data = response.data;
$scope.btntext = 'Login';
if (data == 1) {
window.location.href = '/Home/dashboard';
}
else {
alert(data);
}
}, function (error) {
alert("Failed Login");
});
上面的 snipit 适用于登录页面。