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
javascript
angularjs
ajax
function
Alejo Ribes
fuente
fuente

then()nosuccess().successsintaxis era correcta hasta Angular v1.4.3. Vea los documentos antiguos aquí: code.angularjs.org/1.4.3/docs/api/ng/service/$httpRespuestas:
los
.successsintaxis era correcta hasta Angular v1.4.3.Para versiones hasta Angular v.1.6, debe usar el
thenmétodo. Elthen()método toma dos argumentos: aysuccessunaerrordevolución de llamada que se llamará con un objeto de respuesta.Usando el
then()método, adjunte unacallbackfunción al archivo devueltopromise.Algo como esto:
Consulte la referencia aquí.
Shortcuttambién hay métodos disponibles.Se espera que los datos que obtenga de la respuesta estén en
JSONformato. JSON es una excelente forma de transportar datos y es fácil de usar dentro de AngularJSLa principal diferencia entre los 2 es que la
.then()llamada devuelve unpromise(resuelto con un valor devuelto por acallback) mientras que.success()es una forma más tradicional de registrarsecallbacksy no devuelve unpromise.fuente
.successy.thentome un parámetro diferente, tenga en cuenta esoEsto podría 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 Angular1.5.8. En su lugar, use,responseluego, dentro del bloque,response.datame dieron los datos json que estaba buscando.fuente
success.data? el nombre del parámetro no es tan importante en este caso.$http.get('data/data.json').success(function(data) { data = data;}con mi respuesta, un desarrollador ahora sabedata.dataque no puede obtener datos por sí mismo. por lo tanto, mi respuesta es importante para este mensaje de error.success.dataoresponse.datao cualquier otra cosa. Incluso podrías usardonaldTrump.dataeso también funcionará. Aunque debería usar nombres de variables razonables, no estoy seguro de que este tenga mucho sentido.dataque contiene los datos que vienen como respuesta de su servidor. necesita acceder a esa matriz de datos, utilizando<yourSuccessObjectName>.dataSi 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.
El snipit anterior funciona para una página de inicio de sesión.
fuente