我使用最简单的$ 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);
}
);
我也尝试过成功/错误 - 但同样的问题已经成功
答案 0 :(得分:4)
正如here所述,拦截器的responseError函数必须以return $ q.reject(rejection)结束;
我的一个拦截器没有遵循这个规则而导致所有这些混乱
答案 1 :(得分:1)
您可能正在使用.then函数,该函数返回一个名为response的对象,该对象包含多个对象,其中一个对象是数据。
以下是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.
});
响应对象包含一个状态对象,angular使用它来运行成功回调或错误回调。
然后使用response.data来访问你的数据对象,或者我喜欢做的是提供一个只返回我需要的服务来避免控制器混淆。