ERR_BLOCKED_BY_CLIENT - 请求被广告拦截插件拦截
近日同事在項目中遇到個問題:用戶A在使用某產品前端頁面時從數據庫中選擇某張特定的表后調用接口獲取相關數據失敗,而其他表都是正常的。然后他在自己和同事的電腦上按同樣的步驟操作,有些同事能夠復現,有些不能復現。我按照他提供的步驟嘗試復現了一下,發現相關請求是被攔截了:
控制臺的報錯信息:
GET http://xxx?table=activity_advertisement_info net::ERR_BLOCKED_BY_CLIENTNetwork請求的報錯信息:
原因定位
首先看到ERR_BLOCKED_BY_CLIENT應該能知道是客戶端攔截了,然后看到此請求是GET請求,并且url中還包含有advertisement字樣,能夠意識到可能是廣告攔截插件的原因,看了一眼AdblockPlus的圖標果然在此頁面上有攔截記錄,將插件關閉后重試果然可以了。
在Chrome Devtools的Adblock Plus面板中查看,發現是觸發了EasyList China+EasyList (compliance)中的_advertisement_$domain=~media.ccc.de規則:
如果在Chrome Devtools中沒有顯示Adblock Plus面板,可以到Adblock Plus設置 - 高級 - 自定義中勾選在開發人員工具中顯示“Adblock Plus”面板
解決方案
- 修改請求類型,如上例修改為POST請求,將table的值放于請求體中(最方便快捷),不要在url中出現能夠被攔截的字眼
- 告知用戶添加網站白名單/關閉特定過濾列表
- 聯系過濾列表作者確定規則是否有問題
Adblock Plus等類似插件一般不維護過濾規則,只是使用規則,所以聯系插件方一般沒什么作用。
總結
上面是以Adblock Plus為例進行解釋請求攔截在客戶端被攔截的情況,其他攔截插件應該也類似。
總結
以上是生活随笔為你收集整理的ERR_BLOCKED_BY_CLIENT - 请求被广告拦截插件拦截的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快递鸟接口国内常用快递公司编码表
- 下一篇: 推荐10个 Chrome 插件