[javascript] $ http.get (…) .success는 함수가 아닙니다.
이 코드가 있습니다.
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
내 로컬 환경에서는 정상적으로 작동하지만 서버에서는 다음 오류를 반환합니다.
유형 오류 : $ http.get (…). success는 함수가 아닙니다.
어떤 아이디어? 감사
답변
.success
구문은 각도 v1.4.3에 대한 올바른까지했다.
Angular v.1.6까지 버전의 경우 then
method 를 사용해야 합니다. 이 then()
메서드는 두 개의 인수를 취합니다. a 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
형식 이어야 합니다.
JSON 은 데이터 를 전송하는 훌륭한 방법이며 AngularJS 내에서 사용하기 쉽습니다.
2 사이의 큰 차이는 즉 .then()
호출 반환 promise
(A에서 반환 된 값으로 해결 callback
하면서) .success()
등록하는 전통적인 방법입니다 callbacks
및 반환하지 않습니다 promise
.
답변
이것은 중복 될 수 있지만 위의 가장 많이 투표 한 답변에 따르면 .then(function (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");
});
위의 스 니핏은 로그인 페이지에서 작동합니다.