用角度获取请求捕获401

时间:2015-03-18 19:39:51

标签: angularjs get http-status-code-401

我正在向服务发出get请求以检查某个密钥是否存在 - 如果是,它返回一些数据,如果没有,则返回401.我无法控制服务 - 但我做不想在控制台中显示401 - 这似乎是不专业的,因为在大多数情况下,这个密钥不会存在。有没有办法捕捉401所以它永远不会打印到控制台?

现在我有以下内容 - 我可以测试状态是否为401,但我无法捕捉到它阻止它打印到控制台。这可能吗?我不想在401s上使用全局处理程序,我只想为这个特定请求找到一个。

$http.get(url, { withCredentials: true })
        .success(function(data, status, headers, config) {
          result.resolve(data, status, headers, config);
        })
        .error(function(data, status, headers, config) {
          if(status === 401)
          {
            // I can test for a 401 here, but that doesn't seem to help
          }
          result.reject(data);
        });

2 个答案:

答案 0 :(得分:1)

您无法阻止在控制台中打印ajax错误。

避免这种情况的一种方法是从服务器返回一个常规200,其中包含您将作为缺失键错误客户端处理的特定内容。

或者您可以在回复后立即使用console.clear(),但我不知道它是否得到所有浏览器的支持,而且可能不会更多&#34;专业&#34;。< / p>

答案 1 :(得分:0)

你在捕捉401方面取得的成就似乎是按照应该完成的方式[1]完成的。对于控制台登录错误的问题我不得不说可以做[2]:至少Chrome控制台会自动将401事件标记为控制台,而根本不涉及您的代码。有些东西可以被黑客攻击[3],但只能在你自己的机器和浏览器上。

所以,答案简直就是,不用担心,我想只有编码人员会使用控制台,正常的互联网用户在日常冲浪中无论如何都不会潜入控制台。< / p>

<强>来源:

[1] Capture HTTP 401 with Angular.js interceptor

[2] Angular avoid Console trace on $http error

[3] Can I prevent the Chrome Developer Tools console from logging image 404 errors?