Ich habe diesen Code:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
Funktioniert in meiner lokalen Umgebung einwandfrei, aber auf einem Server wird der folgende Fehler zurückgegeben:
TypeError: $ http.get (...). Erfolg ist keine Funktion
Irgendwelche Ideen? Vielen Dank
javascript
angularjs
ajax
function
Alejo Ribes
quelle
quelle
then()
nichtsuccess()
.success
Syntax war bis Angular v1.4.3 korrekt. Sehen Sie die alten Dokumente hier: code.angularjs.org/1.4.3/docs/api/ng/service/$httpAntworten:
Die
.success
Syntax war bis Angular v1.4.3 korrekt.Für Versionen bis Angular v.1.6 müssen Sie die
then
Methode verwenden. Diethen()
Methode akzeptiert zwei Argumente: asuccess
und einenerror
Rückruf, der mit einem Antwortobjekt aufgerufen wird.Fügen Sie mit der
then()
Methode einecallback
Funktion an die zurückgegebene Datei hinzupromise
.Etwas wie das:
Siehe Referenz hier.
Shortcut
Methoden sind ebenfalls verfügbar.Es wird erwartet, dass die Daten, die Sie aus der Antwort erhalten, im
JSON
Format vorliegen. JSON ist eine großartige Möglichkeit, Daten zu transportieren , und es ist einfach in AngularJS zu verwendenDer Hauptunterschied zwischen den beiden besteht darin, dass der
.then()
Aufruf a zurückgibtpromise
(aufgelöst mit einem von a zurückgegebenen Wertcallback
), während dies.success()
eine traditionellere Art der Registrierung istcallbacks
und a nicht zurückgibtpromise
.quelle
.success
und.then
nehmen Sie andere Parameter, berücksichtigen Sie dasDies mag überflüssig sein, aber die oben am häufigsten gestimmte Antwort besagt,
.then(function (success)
dass dies bei mir ab der Angular-Version nicht funktioniert hat1.5.8
. Verwenden Sie stattdessenresponse
dann innerhalb des Blocksresponse.data
meine json Daten, die ich suchte.quelle
success.data
? Der Parametername ist in diesem Fall nicht so wichtig.$http.get('data/data.json').success(function(data) { data = data;}
mit meiner Antwort Ein Entwickler weiß jetzt, dass erdata.data
nicht einfach Daten selbst abrufen kann. Daher ist meine Antwort auf diese Fehlermeldung wichtig.success.data
oderresponse.data
oder irgendetwas anderes. Sie könnten sogar verwendendonaldTrump.data
, das wird auch funktionieren. Obwohl Sie sinnvolle Variablennamen verwenden sollten, sind Sie sich nicht sicher, ob dieser sinnvoll ist.data
hat, das die Daten enthält, die als Antwort von Ihrem Server eingehen. Sie müssen auf dieses<yourSuccessObjectName>.data
Wenn Sie versuchen, AngularJs 1.6.6 ab dem 21.10.2017 zu verwenden, funktioniert der folgende Parameter als .success und wurde erschöpft. Die .then () -Methode akzeptiert zwei Argumente: eine Antwort und einen Fehlerrückruf, die mit einem Antwortobjekt aufgerufen werden.
Das obige Snipit funktioniert für eine Anmeldeseite.
quelle