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

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

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


当前回答

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

其他回答

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

正如这里所解释的,除了执行广告或脚本阻止的多个扩展名之外,您可能会意识到这可能会通过以下文件名发生:

特别是在AdBlock Plus中,字符串“-300x600”会导致资源加载失败 ERR_BLOCKED_BY_CLIENT问题。

如图所示,一些图片因为名称中的“-300x600”模式而被屏蔽,这种特定的文本模式与AdBlock Plus中的表达式列表模式相匹配。

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

我也面临着同样的问题,我正在使用勇敢浏览器,禁用保护网站,我面临的问题工作

谢谢你的回答!他们让我找到了一个解决方案:

我通过使用第三方服务器来包装我的请求。 看看吧: https://codetabs.com/cors-proxy/cors-proxy.html

GET "https://api.codetabs.com/v1/proxy?quest=your_blocked_url"

当然,最好是用您自己的服务器来封装它。