Javascript $http.get(…)。成功不是一个函数
我有以下代码:Javascript $http.get(…)。成功不是一个函数,javascript,angularjs,ajax,function,Javascript,Angularjs,Ajax,Function,我有以下代码: app.controller('MainCtrl', function ($scope, $http){ $http.get('api/url-api') .success(function (data, status, headers, config){ } } 在我的本地环境中,工作正常,但在服务器中,返回以下错误: TypeError:$http.get(…)。成功不是一个函数 有什么想法吗?感谢在Angular v1.4.3之前,.success语
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
在我的本地环境中,工作正常,但在服务器中,返回以下错误:
TypeError:$http.get(…)。成功不是一个函数
有什么想法吗?感谢在Angular v1.4.3之前,
.success
语法是正确的
对于Angular v.1.6之前的版本,必须使用然后方法。then()
方法接受两个参数:一个success
和一个error
回调,该回调将使用响应对象调用
使用then()
方法,将callback
函数附加到返回的promise
大概是这样的:
app.controller('MainCtrl', function ($scope, $http){
$http({
method: 'GET',
url: 'api/url-api'
}).then(function (response){
},function (error){
});
}
参见参考文献
快捷方式
方法也可用
$http.get('api/url-api').then(successCallback, errorCallback);
function successCallback(response){
//success code
}
function errorCallback(error){
//error code
}
您从响应中获得的数据应为JSON
格式。
JSON是传输数据的好方法,而且在AngularJS中使用非常方便
2之间的主要区别在于.then()
调用返回一个承诺
(使用回调返回的值解决),而.success()则返回
是注册回调的更传统的方式,并且不返回承诺
这可能是多余的,但上面投票最多的答案是。然后(函数(成功)
这在Angular版本1.5.8
中对我不起作用。而是使用response
然后在块内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适用于登录页面。本地envm和服务器上的哪个版本?顺便说一句,返回HttpPromise,因此您需要使用而不是。您是否检查了服务器环境中是否加载了所有javascripts?其then()
不是success()
success
语法在Angular v1.4.3之前是正确的。请参阅此处的旧文档:并在v.1.6I中正式删除。然后,工作正常,感谢Alexandru Ionut Mihai。success
和。然后,
使用不同的参数,考虑到这一点,如果重新编写现有代码,可能很容易呈现这两个参数-上面提到的函数(成功、错误)是串联的,与示例中的不同。“$resource(…).get(…)。then不是函数”…为什么angularJS在一致性方面如此糟糕?我的意思是…你是否尝试了成功。数据
?在这种情况下,参数名称并不那么重要。我的代码可以工作。当我遵循上面的答案时,我被卡住了。这也是一个能够实际获取数据并将其记录到控制台的答案。这可以向开发人员展示如何测试他们浏览器中的eir数据。我在这里被问题标题中相同的错误所引导。旧代码$http.get('data/data.json')。成功(函数(data){data=data;}
通过我的回答,开发人员现在知道了它的数据。数据本身无法获取数据。因此,我的回答对于此错误消息很重要。变量名不会有任何区别,它可能是成功。数据或响应。数据或其他任何东西。您甚至可以使用donaldTrump.data
来获取数据t也会起作用。虽然您应该使用合理的变量名,但不确定这个变量名是否有意义。这是因为成功对象有一个名为data
的数组,该数组保存来自服务器的响应数据。您需要使用data
访问该数据数组