最近我意识到,一些广告拦截器扩展(如adblocker plus)阻止了一些Ajax调用。我在控制台上得到这个错误:

GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT 

为什么它会阻止一些Ajax调用,而不是其他的,是什么原因造成的?除了告诉用户关闭广告拦截器,还有什么解决办法吗?


当前回答

我发现一个情况是,如果你的url包含关键字横幅,它也会被阻止。

其他回答

如果你的URL包含“广告”,“广告”,“双击”,“点击”,或类似的东西……

例如:

得到googleads.g.doubleclick.net/pagead/id static.doubleclick.net/instream/ad_status.js

然后广告拦截器就会屏蔽它。

如果有任何广告拦截器(Brave浏览器使用默认拦截器),关闭它。这对我很有效

我发现如果文件名中有300,AdBlock会阻塞页面并抛出ERR_BLOCKED_BY_CLIENT错误。

如果你在无头模式下运行chrome浏览器(例如与Puppeteer或Ferrum), url白名单和请求不匹配列表,也会发生此错误。

只是切换一些URL查询参数的顺序,为我解决了这个问题(所以显然uBlock Origin广告拦截规则不是很健壮)。