2017-03-03 29 views
0

我尝试了很多aproaches的,其中的一些:如何获得角度1.5.6的响应状态码?

$http({ 
     method: 'GET', 
     url: '/Url'}).then(function successCallback(response) { 
     }, function errorCallback(response) { 
     }); 

    var req = { 
     method: 'GET', 
     interceptor: { 
      response: function (response) { 
       console.log(response) 
       var result = response.resource; 
       result.$status = response.status; 
       return result; 
      } 
     }, 
     url: url, 
     headers: { 
      'Authorization': token 
     } 
    } 

    $http(req).success(function (data, status, headers, config) { 
     console.log(data, status, headers, config); 
    }).error(function (data, status, headers, config) { 
     console.log(data, status, headers, config); 
    }); 

和很多其他的没有结果,所以我真的需要帮助! 我会很感激任何帮助

+0

您需要设置拦截器的配置方法。请参阅https://docs.angularjs.org/api/ng/service/$http –

+0

您可以添加重要的示例吗?因为我试图做到这一点没有结果 – nightmare

+0

如果提供的'url'无效,那么你的'response'函数将永远不会被调用,所以你永远不会看到'console.log(...)'写成你的“响应”功能。 – Gaurav

回答

0

第一种方法看起来接近你所需要的。

function successCallback(response) { 
    console.log('status code: ', response.status); 
} 

当前回调是空的,所以我们正在访问响应对象和日志状态代码。

+0

它不起作用 – nightmare

+0

您必须在您的示例中使用正确的URL。什么是您使用的URL? –

0

第一种方法是更直接的做法,但我敢肯定,响应函数应该是匿名的。把console.log()放在两个都会有帮助。

$http({ 
    method: 'GET', 
    url: '/Url' 
    }).then(function(response) { 
     console.log(response.status); 
    }, function(response) { 
     console.log(response.status); 
    }); 

如果这不起作用,只需在两者中放置console.log(response)即可看到它是什么。

+0

这也不起作用 – nightmare

+0

当你这样做时,console.log的输出是什么?邮差(https://www.getpostman.com/)也是一个用于调试http请求的有用工具。如果您请求或端点设置不正确,那么这可能是您无法获得状态代码的原因。 – Rozgony

0

您可以使用httpinterceptor如果你想跟踪您的所有要求:

myModule.factory('myHttpInterceptor', function ($q) { 

    return { 
     response: function (response) { 
      // do something with success response 
      // status in response.status 
      return response; 
     }, 
     responseError: function (response) { 
      // do something with error response 
      // status in response.status 
      return $q.reject(response); 
     } 
    }; 

}); 

myModule.config(function ($httpProvider) { 
    $httpProvider.interceptors.push('myHttpInterceptor'); 
});