$ http.get()中的errorCallback。然后永远不会被调用

时间:2015-12-22 08:09:05

标签: angularjs

我使用最简单的$ 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

我也尝试过成功/错误 - 但同样的问题已经成功

2 个答案:

答案 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来访问你的数据对象,或者我喜欢做的是提供一个只返回我需要的服务来避免控制器混淆。