javascript - not - $ http.get(...).success no es una función
is not a function at childscope scope (3)
Tengo este código:
app.controller(''MainCtrl'', function ($scope, $http){
$http.get(''api/url-api'')
.success(function (data, status, headers, config){
}
}
En mi entorno local, funciona bien, pero en un servidor, devuelve este error:
TypeError: $ http.get (...). El éxito no es una función
¿Algunas ideas? Gracias
Esto puede ser redundante, pero la respuesta más votada anterior dice
.then(function (success)
y eso no funcionó para mí a partir de la versión angular
1.5.8
. En su lugar, use la
response
luego dentro del bloque
response.data
me dieron mis datos json I estaba buscando.
$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.'');
});
La sintaxis de
.success
fue correcta hasta Angular v1.4.3.
Para las versiones hasta Angular v.1.6, debe usar el método.
El método
then()
toma dos argumentos: un callback
success
y un
error
que se llamará con un objeto de respuesta.
Usando el método
then()
, adjunte una función de
callback
a la
promise
devuelta.
Algo como esto:
app.controller(''MainCtrl'', function ($scope, $http){
$http({
method: ''GET'',
url: ''api/url-api''
}).then(function (response){
},function (error){
});
}
Ver referencia here.
Shortcut
métodos de
Shortcut
también están disponibles.
$http.get(''api/url-api'').then(successCallback, errorCallback);
function successCallback(response){
//success code
}
function errorCallback(error){
//error code
}
Se espera que los datos que obtenga de la respuesta estén en formato
JSON
.
JSON
es una excelente manera de transportar
datos
, y es fácil de usar dentro de
AngularJS
La principal diferencia entre los 2 es que la llamada
.then()
devuelve una
promise
(resuelta con un valor devuelto por una
callback
) mientras que
.success()
es la forma más tradicional de registrar
callbacks
de
callbacks
y no devuelve una
promise
.
Si está intentando utilizar AngularJs 1.6.6 a partir del 21/10/2017, el siguiente parámetro funciona como .success y se ha agotado. El método .then () toma dos argumentos: una respuesta y una devolución de llamada de error que se llamará con un objeto de respuesta.
$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");
});
El fragmento anterior funciona para una página de inicio de sesión.