2016-11-10 121 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

相關問題