у меня есть этот код:
app.controller('MainCtrl', function ($scope, $http){
$http.get('api/url-api')
.success(function (data, status, headers, config){
}
}
В моей локальной среде работает нормально, но на сервере верните эту ошибку:
TypeError: $ http.get (...). Успех - это не функция
Любые идеи? Спасибо
javascript
angularjs
ajax
function
Алехо Рибес
источник
источник
then()
не такsuccess()
.success
Синтаксис был правилен до углового v1.4.3. См. Старые документы здесь: code.angularjs.org/1.4.3/docs/api/ng/service/$httpОтветы:
.success
Синтаксис был правилен до углового v1.4.3.Для версий до Angular v.1.6 необходимо использовать
then
метод.then()
Метод принимает два аргумента:success
и в функциюerror
обратного вызова , которая будет вызываться с объектом ответа.Используя
then()
метод, прикрепитеcallback
функцию к возвращаемомуpromise
.Что-то вроде этого:
См. Ссылку здесь.
Shortcut
также доступны методы.Ожидается, что данные, которые вы получите из ответа, будут в
JSON
формате. JSON - отличный способ передачи данных , и его легко использовать в AngularJS.Основное различие между 2 состоит в том, что
.then()
вызов возвращаетpromise
(разрешается значением, возвращаемым из acallback
), тогда как.success()
это более традиционный способ регистрацииcallbacks
и не возвращаетpromise
.источник
.success
и.then
возьмите другой параметр с учетом этогоЭто может быть избыточным, но в приведенном выше ответе, получившем наибольшее количество голосов, говорится,
.then(function (success)
что это не сработало для меня с версии Angular1.5.8
. Вместо этого используйтеresponse
then внутри блока,response.data
и я получил мои данные json, которые я искал.источник
success.data
? имя параметра в данном случае не так важно.$http.get('data/data.json').success(function(data) { data = data;}
с моим ответом разработчик теперь знает, что онdata.data
не может просто получить данные сам по себе. поэтому мой ответ важен для этого сообщения об ошибке.success.data
илиresponse.data
или что - нибудь еще. Вы даже можете использоватьdonaldTrump.data
это тоже. Хотя вам следует использовать разумные имена переменных, не уверен, что это будет иметь смысл.data
, содержащий данные, поступающие в качестве ответа от вашего сервера. вам необходимо получить доступ к этому массиву данных, используя<yourSuccessObjectName>.data
Если вы пытаетесь использовать AngularJs 1.6.6 по состоянию на 21.10.2017, следующий параметр работает как .success и был исчерпан. Метод .then () принимает два аргумента: ответ и обратный вызов ошибки, который будет вызываться с объектом ответа.
Приведенный выше снипит работает для страницы входа.
источник