2015-12-22 2 views
2

я использую простейший $ http.get(). Затем строительство, но errorCallback никогда не вызывается (проверено с кодом ошибки 500 и 404)

$http.get(url,{cache: pageCache}).then(
     function(data){ 
       console.log('getPage.SUCCESS'); 
       console.log(data); 
       console.log(data.data); 
     }, 
     function(data){ 
       console.log("ERROR"); 
       console.log(data); 
     } 
); 

HTTP HEADERS

Я также попытался успех/ошибка - но та же проблема arrised

+0

Возможно, это из-за кеша? Что происходит, когда вы удаляете '{cache: pageCache}'? В противном случае ваш код выглядит хорошо –

+0

Вы запрашиваете у 'http: // localhost: 8000'' 'http: //127.0.0.1: 8091'? – LinnTroll

+0

@ David Votrubec Проверено - проблема не в кеше – anastsiacrs

ответ

4

Как описано here функция responseError перехватчика должна быть прекращена с обратным $ q.reject (отказ);

Один из моих перехватчиков не следовать этому правилу и привести всю эту кашу

0

Это может быть, что вы используете .then функции, которая возвращает объект, называемый ответ, содержащие несколько объектов, один из которых данные.

Ниже приведен пример из https://docs.angularjs.org/api/ng/service/$http

$http({ 
    method: 'GET', 
    url: '/someUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    }); 

Объект ответа содержит объект состояния, угловые использует это, чтобы запустить либо обратный вызов успеха или обратный вызов ошибки.

Для доступа к вашему объекту данных используйте response.data или то, что мне нравится делать, это служба, которая возвращает только то, что мне нужно, чтобы избежать путаницы в контроллере.

Смежные вопросы