angularjs - 防止在浏览器控制台中记录 http 错误

标签 angularjs

这个问题在这里已经有了答案:





Suppress Chrome 'Failed to load resource' messages in console

(2 个回答)


4年前关闭。




我试图弄清楚如何在我的应用程序中抑制 http 请求和响应错误,例如,当对我的服务器发出错误请求时,我不希望将错误记录到浏览器控制台中。我试过覆盖 $exceptionHandler ,但该逻辑适用于除 HTTP 错误之外的所有异常,这些异常仍会记录到浏览器中。我还创建了 HTTP 拦截器,但全局 400 Bad Request错误出现在我放入 responseError 的逻辑之前:

'responseError': function (rejection) {
 console.log(rejection);
 return $q.reject();
}

那也不会抑制错误,有什么想法吗?

编辑

我得到的错误是:POST http://localhost:38349/token 400 (Bad Request) enter image description here

最佳答案

实际上 Angular 并没有记录这个。

执行此操作的是 XMLHttpRequest 对象(与 JQuery 相同的问题 here)。我从 Angular 中提取了逻辑并制作了 a working standalone example :

var method = 'POST';
var url404 = '/tnseiartneiasrt/arsntiearsntiasrntiarnstsie';

var xhr = new window.XMLHttpRequest();
xhr.open(method, url404, true);
xhr.onreadystatechange = function() {
  if (xhr && xhr.readyState == 4) {
    console.log('should have logged an error already :(');
  }
};
xhr.send(null);

如您所见,记录它的是 xhr 对象。可能有一种方法可以在触发 xhr 请求之前禁用所有 console.log,但我认为最好要么
  • 重新设计您的错误流程以返回状态代码 200,其中嵌入了正文中的内部错误代码
  • 使用控制台日志记录(普通用户甚至不知道控制台)

  • 我选择了第二个选项,因为我认为它更容易理解,因为当有人阅读您的代码时它不需要额外的逻辑。

    希望这可以帮助 :)

    关于angularjs - 防止在浏览器控制台中记录 http 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113286/

    相关文章:

    javascript - AngularJS 和网络 worker

    javascript - 如何使用 ng-if 限制 ng-repeat

    javascript - 如何使对象/属性显示在指令中?

    css - ionic 中带有 ng-repeat 的列不会分成行

    css - Angular-cli 构建生成的 CSS 未在 DOM 中解释

    javascript - 当新项目添加到模型时,ng-repeat 更改所有项目的排序顺序

    javascript - 在 md-autocomplete 上使用 ng-blur?

    javascript - 如何使用 AngularJS 使输出数据动态结构化?

    javascript - 添加模块不起作用

    float div 的 CSS3 动 Canvas 局更改