2016-11-10 126 views
1

因此,在我们的网站上,我们有各种搜索,其中一些工作正常,并返回适当的结果。他们几个却返回JavaScript错误:是否有可能捕获net :: ERR_BLOCKED_BY_CLIENT?

Failed to load resource: net::ERR_BLOCKED_BY_CLIENT when I search on my machine.

我发现这个问题是我在谷歌浏览器运行AdBlocker,它是造成问题的原因AdBlocker。现在我知道我可以关闭AdBlocker,这很好,我有,但是有没有办法让我在javascript中捕获这个错误,并向用户报告为什么他们没有得到任何搜索结果?

理想情况下,我是在类似于c#try/catch的东西之后。

编辑: 好吧,所以经过一些挖掘并指出正确的方向从下面的评论我认为我已经推断出这个问题,希望这会帮助其他人。

在阅读了this之后,看起来我正在尝试使用我们当前运行的jQuery版本(1.10.x)无法完成,所以我想解决方案是使用新版本的jQuery(2。 X),看看我能赶上错误

+0

的可能重复:http://stackoverflow.com/questions/27277656/how-to-handle-the-err-blocked-by-client-using-javascript 由于这与网络请求时,可以检测如果它是XHR则失败。如果它是一项资产,那么它会更难一些。这是Chrome通过指令阻止了一些请求。 –

+0

所以它不是严格的XHR,它使用$ .getJSON()发送请求并检索结果。我看看这里: http://stackoverflow.com/questions/1740218/error-handling-in-getjson-calls 它看起来像我将不得不改变如何发送请求... – ltw1991

+0

但该链接显示你可以用'.error(function(){alert(“error”);})处理错误(http://stackoverflow.com/a/5553540/966338)''这对你来说不适用吗在这种情况下? –

回答

0

可惜你不能赶上这个错误消息明确,但可以捕获错误本身:

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

Chrome blocking ad call

Obviously the example isn't requesting JSON, but you can see that it fails and calls the error handler.

这些错误是由Chrome触发的,例如,像Adblock这样的插件(如您所述)会取消请求。

+0

我试过这个但我没有得到任何输出到控制台: '$阿贾克斯({ 类型: 'GET', 网址:网址, 的contentType: '应用/ JSON', 数据类型: 'JSON', 成功:功能(数据){// 做的东西 }, error:function(err){ console.log(“Error:”,err); } });' – ltw1991

+0

我已经使用[jsbin这里](http://jsbin.com/hafunepoxa/edit?js,output)。确保广告块已打开,并且错误将显示在控制台中。 –

+1

我很喜欢这个回答,因为你的链接适用于我,我明显错过了我的代码中的一些东西,希望我会发现它是什么!谢谢你! – ltw1991

相关问题