这个问题在这里已经有了答案:
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)
最佳答案
实际上 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,但我认为最好要么
我选择了第二个选项,因为我认为它更容易理解,因为当有人阅读您的代码时它不需要额外的逻辑。
希望这可以帮助 :)
关于angularjs - 防止在浏览器控制台中记录 http 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113286/