在某些AJAX调用中出现“net :: ERR_BLOCKED_BY_CLIENT”错误

最近我意识到,一些adblocker扩展(如adBlocker plus)可以阻止一些Ajax调用。 我在控制台上得到这个错误:

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

为什么它阻止了一些Ajax调用,而不是其他的,是什么原因造成的? 除告诉用户closuresadblocker之外,是否有任何解决方法?

AdBlockers通常有一些规则,即它们将URI与某种types的expression式匹配(有时它们也将DOM与expression式匹配,而不是在这种情况下这一点很重要)。

有规则和expression式,只是在一小段文字(URI)上操作,很容易造成一些误报…

除了指导你的用户禁用他们的扩展(至less在你的站点),你也可以得到扩展,并testing哪些规则/expression式阻止你的东西,只要扩展提供了足够的细节。 一旦确定了罪魁祸首,您可以尝试通过使用不同的URI来避免触发规则,将规则报告为不正确或过度广泛的创build团队,或两者。 请查看文档以了解如何执行此操作的特定插件。

例如,AdBlock Plus具有可阻止项目视图,该视图显示页面上的所有阻止项目以及触发该块的规则。 这些项目还包括XHR请求。

可阻挡物品

如果您的url包含“广告”,“广告”,“双击”,“点击”等词语…

例如:

  • GET googleads.g.doubleclick.net/pagead/id
  • static.doubleclick.net/instream/ad_status.js

…然后广告拦截器将阻止它。

我发现如果文件名有300 ,AdBlock会阻止页面,并引发一个ERR_BLOCKED_BY_CLIENT错误。

将PrivacyBadger添加到可能的原因列表中

我发现一个案例是,如果你的url包含关键词“旗帜”,它也会被阻止。

在我的情况下,这是Avira的Chrome扩展和Firefox附加组件,称为“Avira浏览器安全”。 我有版本1.7.4的问题。 在我的具体情况下,我想login一个名为gliffy.com的网站来制作图表,但login后我得到了一个空白页面。 如果您在Chrome中使用F12(控制台),则可以看到所有这些ERR_BLOCKED_BY_CLIENT(和其他)错误。

Opera拦截器和其他人检查networking中的所有文件/url。 然后比较清单 。 这是EasyPrivacy和EasyList 。 如果你在这个文件/url,你的将被禁止。 祝你好运。

所以…我find所有addBlockers的FilterLists !