【问题标题】:How to check response from $httpProvider.interceptors responseError?如何检查来自 $httpProvider.interceptors responseError 的响应?
【发布时间】:2016-05-25 20:01:57
【问题描述】:

在 AngularJs 1.2.x 中,the docs 只提供了一个拒绝对象,我们如何才能看到实际的响应对象呢? (查看http状态码之类的东西)

编辑:这是文档中的一个示例:

// register the interceptor via an anonymous factory
$httpProvider.interceptors.push(function($q, dependency1, dependency2) {
  return {
    'responseError': function(rejection) {
      // do something on error
      if (canRecover(rejection)) {
        return responseOrNewPromise
      }
      return $q.reject(rejection);
    };
});

该示例显示了一些未知的拒绝对象(没有关于其成员的文档)。旧的(不推荐使用的 responseInterceptors 允许查询响应对象。(例如检查 status=401)您应该如何使用新的拦截器功能查询 401 服务错误?

【问题讨论】:

  • 您可以添加您所指的代码\内容的sn-p吗?
  • okie,抱歉我不是很清楚。我试图添加更多细节

标签: angularjs


【解决方案1】:

我正在编写我对此的用法,以便能够运行它,

所以我设置了一个断点,并看到“拒绝”对象有一个 .status 属性。

如果服务器不存在,它将 == 0 否则,它似乎会返回 http 状态码。 (到目前为止我看到了 404)

我没有编写一个真正的服务点,所以我会更新这个答案和/或在我完成后接受它。

更新: 是的,.status 字段返回 http 响应状态,如果未找到服务器,则返回 0。所以这是有效的答案!

【讨论】:

  • 我得到一个错误的状态:-1 而不是 403,服务器返回什么...有什么想法吗?
猜你喜欢
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
相关资源
最近更新 更多