eu tenho este código:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
No meu ambiente local, funciona bem, mas em um servidor, retorna este erro:
TypeError: $ http.get (...). Sucesso não é uma função
Alguma ideia? obrigado
javascript
angularjs
ajax
function
Alejo Ribes
fonte
fonte
then()
nãosuccess()
.success
sintaxe estava correta até o Angular v1.4.3. Veja os documentos antigos aqui: code.angularjs.org/1.4.3/docs/api/ng/service/$httpRespostas:
A
.success
sintaxe estava correta até o Angular v1.4.3.Para versões até o Angular v.1.6, você deve usar o
then
método. Othen()
método leva dois argumentos: aesuccess
umerror
retorno de chamada que será chamado com um objeto de resposta.Usando o
then()
método, anexe umacallback
função ao retornadopromise
.Algo assim:
Veja a referência aqui.
Shortcut
métodos também estão disponíveis.Os dados que você recebe da resposta devem estar em
JSON
formato. JSON é uma ótima maneira de transportar dados e é fácil de usar no AngularJSA principal diferença entre os 2 é que a
.then()
chamada retorna apromise
(resolvido com um valor retornado de acallback
), enquanto.success()
é a forma mais tradicional de registrocallbacks
e não retorna apromise
.fonte
.success
e.then
tomar parâmetros diferentes, leve em consideração issoIsso pode ser redundante, mas a resposta mais votada acima diz
.then(function (success)
e isso não funcionou para mim na versão Angular1.5.8
. Em vez disso, use oresponse
dentro do bloco pararesponse.data
obter os dados json que estava procurando.fonte
success.data
? o nome do parâmetro não é tão importante neste caso.$http.get('data/data.json').success(function(data) { data = data;}
com minha resposta, um desenvolvedor agora sabedata.data
que não pode simplesmente obter dados sozinho. portanto, minha resposta é importante para esta mensagem de erro.success.data
ouresponse.data
ou qualquer outra coisa. Você pode até usardonaldTrump.data
isso também funcionará. Embora você deva usar nomes de variáveis razoáveis, não tenho certeza se este fará muito sentido.data
que contém os dados que chegam como resposta de seu servidor. você precisa acessar essa matriz de dados, usando<yourSuccessObjectName>.data
Se você está tentando usar AngularJs 1.6.6 em 21/10/2017, o seguinte parâmetro funciona como .success e foi esgotado. O método .then () leva dois argumentos: uma resposta e um retorno de chamada de erro que será chamado com um objeto de resposta.
O snipit acima funciona para uma página de login.
fonte