then success not example error childscope javascript angularjs ajax function

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.