$http.получить.)…(успех-это не функция
У меня есть этот код:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
в моей локальной среде, работает нормально, но на сервере, возвращает эту ошибку:
TypeError: $http.получить.(..).успех-это не функция
какие идеи? Спасибо
3 ответа:
The
.successсинтаксис был правильным до углового v1.4.3.для версий до углового 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){ }); }см. ссылку здесь.
Shortcutметоды также доступны.$http.get('api/url-api').then(successCallback, errorCallback); function successCallback(response){ //success code } function errorCallback(error){ //error code }данные, которые вы получаете от ответа, как ожидается, будет в . JSON - это отличный способ транспортировки сведения, и это легко использовать в пределах AngularJS
основное различие между 2 является то, что
.then()вызов возвращает apromise(разрешен со значением, возвращенным изcallback), а.success()более традиционный способ регистрацииcallbacksи не возвращает apromise.
Это может быть излишним, но выше наиболее проголосовали ответ говорит
.then(function (success)и это не сработало для меня, как для угловой версии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.'); });
Если вы пытаетесь использовать AngularJs 1.6.6 по состоянию на 21/10/2017 следующий параметр работает как .успех так и был исчерпан. Этот.затем метод () принимает два аргумента: ответ и обратный вызов ошибки, который будет вызван с объектом ответа.
$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 работает для страницы входа в систему.