【问题标题】:Is it possible to catch net::ERR_BLOCKED_BY_CLIENT?是否有可能捕获 net::ERR_BLOCKED_BY_CLIENT?
【发布时间】:2017-03-24 11:09:41
【问题描述】:

因此,在我们的网站上,我们进行了各种搜索,其中一些可以正常工作并返回适当的结果。然而,其中一些返回 javascript 错误:

在我搜索时加载资源失败:net::ERR_BLOCKED_BY_CLIENT 我的机器。

我发现问题是我在 Google Chrome 中运行 AdBlocker,而导致问题的正是 AdBlocker。现在我知道我可以关闭 AdBlocker,这很好,我有,但是有没有办法让我在 javascript 中捕捉到这个错误并向用户报告为什么他们没有得到任何搜索结果?

理想情况下,我追求类似于 c# try/catch 的东西。

编辑: 好的,所以经过一番挖掘并从下面的 cmets 中指出正确的方向后,我想我已经推断出了这个问题,希望这对其他人有帮助。

在阅读this 之后,看起来我想要完成的工作无法使用我们当前运行的 jQuery 版本(1.10.x)来完成,所以我想解决方案是使用新版本的 jQuery(2 .x) 看看我能不能捕捉到错误

【问题讨论】:

  • 可能重复:stackoverflow.com/questions/27277656/… 由于网络请求会发生这种情况,如果它是 XHR,您可以检测到故障。如果它是一种资产,那就有点困难了。这是 Chrome 通过指令阻止某些请求。
  • 所以它不是严格意义上的 XHR,它使用 $.getJSON() 发送请求并检索结果。我在这里看了看:stackoverflow.com/questions/1740218/… 看来我将不得不更改请求的发送方式...
  • 但是该链接显示您可以使用 .error(function() { alert("error"); }) 处理错误 (stackoverflow.com/a/5553540/966338)。在这种情况下这对您不起作用吗?
  • 如果您希望专门从浏览器中捕获该错误 - 不幸的是,这是不可能的。您只会收到一般错误消息
  • 很遗憾没有,我试过.error(function() { alert('error'); });.onerror(function() { alert('error'); });都返回javascript错误而不是函数

标签: javascript c# .net google-chrome


【解决方案1】:

很遗憾,您无法专门捕获该错误消息,但您可以捕获错误本身:

$.ajax({
  url: 'http://openx.net',
  dataType: 'json',
  success: function( data ) {
    console.log( "Success:", data);
  },
  error: function( data ) {
    console.log( "Error:", data);
  }
});

显然该示例没有请求 JSON,但您可以看到它失败并调用错误处理程序。

Chrome 会触发这些错误,例如,当 Adblock(如您提到的)这样的插件取消请求时。

【讨论】:

  • 我已经尝试过了,但我没有得到任何输出到控制台:$.ajax({ type: 'GET', url: url, contentType: 'application/json', dataType: 'json', success: function (data) { //do stuff }, error: function(err) { console.log("Error:", err); } });
  • 我已经和jsbin here 一起工作了。确保广告块已打开,错误将出现在控制台中。
  • 我想将此标记为已回答,因为您的链接对我有用,我显然在我的代码中遗漏了一些东西,希望我能找出它是什么!不过谢谢!
  • 请注意:这不适用于 jQuery 1.x:stackoverflow.com/questions/42159558/…
  • net::ERR_CONNECTION_TIMED_OUT 不同,控制台响应无效。
【解决方案2】:

如果您有任何广告拦截器,请为 URL 禁用它们。

【讨论】:

  • 问题是关于如何捕捉这个错误,而不是避免它。
猜你喜欢
  • 2015-10-29
  • 2012-07-12
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2011-03-19
  • 1970-01-01
相关资源
最近更新 更多