У меня возникают проблемы с попыткой изящно обрабатывать ошибки $ http. Я перебираю список серверов, чтобы вызвать вызовы API для статуса. Звонки, которые успешно завершатся отлично. Те, которые терпят неудачу, не дают мне доступ к информации об ошибках. Это всегда неопределенно. Вот фрагмент кода:Угловая ответная реакция HTTP-ответа HTTP всегда не определена
angular.forEach($scope.servers, function (server) {
// blank out results first
server.statusResults = {};
$http.jsonp(server.url + '/api/system/status?callback=JSON_CALLBACK', {headers: { 'APP-API-Key': server.apiKey }}).
success(function (data, status, headers, config) {
server.statusResults = data;
}).
error(function (data, status, headers, config) {
// data is always undefined here when there is an error
console.error('Error fetching feed:', data);
});
}
);
Выход консоли показывает правильные 401 ошибку (который я не сделал вывод) и мое сообщение об ошибке консоли (что я и сделал вывод) с неопределенным объектом данных.
GET https://server_address/api/system/status?callback=angular.callbacks._1 401 (Unauthorized) angular.min.js:104
Error fetching feed: undefined
То, что я пытаюсь сделать, это НЕ имеет угловую дисплей 401 в журнале, и вместо этого я отобразить его в изящный способ. Однако, поскольку данные не определены, у меня нет доступа к информации.
Я новичок в AngularJS, но мой пример близко соответствует другим примерам, которые я нашел в документации.
Я также пытался использовать $ resource вместо $ http и получил ту же самую проблему.
var statusResource = $resource(server.url + '/api/system/status', {alt: 'json', callback: 'JSON_CALLBACK'},
{ status: {method: 'JSONP'}, isArray: false, headers: { 'APP-API-Key': server.apiKey } });
// make status API call
statusResource.status({}, function (data) {
server.statusResults = data;
}, function (err) {
// data is always undefined here when there is an error
console.log(err);
});
Я, вероятно, делаю что-то явно неправильно, но я не уверен, что еще попробовать.
Как выглядит ответ сервера? – Pointy
Также [см. Этот интересный вопрос и ответ] (http://stackoverflow.com/questions/14517709/how-to-get-data-from-jsonp-error-callback-in-angularjs). – Pointy