Javascript $http错误上的控制台跟踪

Javascript $http错误上的控制台跟踪,javascript,angularjs,rest,Javascript,Angularjs,Rest,在我的应用程序中,我使用RESTAPI获取数据。 如果有人发送这样的请求 $http.get('api/entity/' + $scope.entityId).success(/* DO STUFF */).error(/* DO STUFF */) 在服务中,如果entityId不存在,我将返回404。 在error函数中,我使用status(第二个参数)捕捉它,并以适当的方式对其进行操作 我对angular如果抛出异常并污染javascript控制台感到恼火。这似乎发生在Angular.j

在我的应用程序中,我使用RESTAPI获取数据。 如果有人发送这样的请求

$http.get('api/entity/' + $scope.entityId).success(/* DO STUFF */).error(/* DO STUFF */)
在服务中,如果entityId不存在,我将返回404。 在error函数中,我使用status(第二个参数)捕捉它,并以适当的方式对其进行操作

我对angular如果抛出异常并污染javascript控制台感到恼火。这似乎发生在Angular.js:8165上

有没有办法告诉angular我是一个成熟的开发人员,我会以一种很好的方式处理他认为的错误

换句话说,我能告诉angular不要输出那些废话吗


谢谢,

这是您浏览器的功能,而不是AngularJS的日志部分。以下是本页控制台中的示例:

您可以看到它记录的错误消息与您在问题注释中链接的错误消息完全相同,确实如此,但我没有添加任何日志记录语句

你能做的最好的事情就是跟随并向控制台添加一个过滤器。

我并没有为此添加一个真正的“编码”解决方案,因为Philipp提供了正确的答案,但我想发布一个关于“解决方法”的想法

如果您真的想避免这种情况,解决方案就是将状态代码大于或等于400的所有响应作为已处理的响应(例如:无效凭据、电子邮件存在、无效开始日期等),使它们都表现为成功,状态返回为200,您可以在响应头或响应体中添加另一个属性,如
secondaryStatusCode=400
errorCode=400
,然后在前端的成功函数中,尝试读取此属性,如果您有
errorCode
,则即使状态代码为200,它也是一个错误


我知道这是一个丑陋的解决方案,但如果您真的需要找到解决方法,可以使用这种方法。

您确定这是AngularJS而不是浏览器吗?我确信浏览器会记录每个HTTP错误。好吧,你可能是对的,我所知道的唯一一件事就是我得到了这样的答案:Geat,谢谢你的回答!如果您想避免污染所有用户(而不仅仅是您自己)的控制台,那么这不是一个解决方案。这个问题很好。我希望服务器在发生错误时抛出异常,我希望客户端在不污染控制台的情况下处理异常。虽然浏览器(在我的情况下是Chrome和Opera)确实会记录“网络错误”,但您只需选中控制台过滤器中的“隐藏网络”复选框即可隐藏该错误。然而,正如原始问题所述,AngularJS也在记录错误。我也希望这一切停止。@JeffreyA.Gochin这个答案已经3年了。如果AngularJS现在也默认记录了网络错误,你能发布一个新的答案和你的解决方案吗?谢谢你的回复,但正如你所说的,这更多是一个解决办法,我构建的API需要保持“干净”,以便客户端直接使用(没有前端),顺便说一句,我不会这么说,这是有目的的,我已经看到了大量使用这种技术的服务和网站。就我自己而言,我宁愿不这样做,尽量坚持休息……我就是这样,我认为是的,很多项目都使用这种“丑陋”的解决方案,如果真的是这样的话。我知道答案可能太晚了,但我只想为那些想为这类问题寻找答案的社区添加这一点。如果你想避免在客户端处理错误污染控制台,这是我发现的唯一方法。我同意应该有一种更优雅的方式。