【问题标题】:Suppress Chrome 'Failed to load resource' messages in console在控制台中抑制 Chrome \'Failed to load resource\' 消息
【发布时间】:2022-02-25 17:17:29
【问题描述】:

我正在编写一个脚本,该脚本使用 XMLHttpRequest 来搜索由相对路径定义的文件,通过尝试将该相对路径与脚本知道的其他相同域绝对路径进行解析,然后尝试从该解析加载文件网址。如果遇到 404,我只是尝试将文件相对路径解析为另一个绝对路径,然后重试。对于这个特定的脚本,遇到 404 完全没问题 - 但是,我的控制台到处都是“加载资源失败:服务器响应状态为 404(未找到)消息,我想禁止它们。

据我所知,没有要捕获的错误——错误情况由 xmlHttpRequest.onreadystatechange 处理程序处理,并且没有 window.onerror。

有没有办法抑制这些消息?

谢谢

【问题讨论】:

  • 我不认为你可以从 JavaScript 中获得。然而,开发者工具中可能有一个(隐藏的)配置
  • 另请参阅 herehere 在 Firebug 中的相同内容。

标签: javascript google-chrome xmlhttprequest google-chrome-devtools


【解决方案1】:

此功能是在last year 引入的。你可以在这里启用它:DevTools->Settings->General->Console->Hide network messages

另请参阅 devtools 文档中的 Filtering the Console outputAdditional settings

【讨论】:

  • 有人知道是否有办法从您的 JavaScript 代码中执行此操作吗?这不会是下游机器的默认设置,问我为什么会有“错误”,我是否能够“解决这个问题”。
【解决方案2】:

catch 块或错误处理函数中使用console.clear()。 记录后,它将立即在控制台上清除这些请求错误。

请注意

来自 MDN

请注意,如果用户在设置中选择了“导航时保留日志”,则在 Google Chrome 中,console.clear() 无效。

Read more about it on MDN

try {
  var req = new XMLHttpRequest();
  req.open('GET', 'https://invalidurl', false);
  req.send();
} catch(e) {
  console.clear();
}

应该记录这个

获取https://invalidurl/net::ERR_NAME_NOT_RESOLVED

但它会被清除。

【讨论】:

  • 但这会清除控制台中的所有内容,而不仅仅是 404 错误
  • @schoinh 似乎我们可以...拦截所有控制台消息...清除控制台...并实现我们想要的任何东西
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 1970-01-01
  • 2014-08-30
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多