我正在向服务发出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);
});
答案 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?