$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 работает для страницы входа в систему.