最近,我意识到,一些adblocker扩展(例如adBlocker plus)会阻止一些Ajax调用。我在控制台上收到该错误:
GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT
为什么它阻止某些Ajax调用而不阻止其他Ajax调用,是什么原因造成的?除了告诉用户关闭adblocker之外,还有其他解决方法吗?
最近,我意识到,一些adblocker扩展(例如adBlocker plus)会阻止一些Ajax调用。我在控制台上收到该错误:
GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT
为什么它阻止某些Ajax调用而不阻止其他Ajax调用,是什么原因造成的?除了告诉用户关闭adblocker之外,还有其他解决方法吗?
Answers:
AdBlocker通常具有一些规则,即,它们将URI与某种类型的表达式匹配(有时,它们也将DOM与表达式匹配),在这种情况下并不重要。
具有仅对少量文本(URI)起作用的规则和表达式就容易产生一些假阳性...
除了指示用户禁用扩展名(至少在您的站点上),您还可以获取扩展名并测试哪个规则/表达式阻止了您的工作,只要扩展名提供了足够的详细信息。一旦确定了罪魁祸首,您可以尝试通过使用不同的URI来避免触发规则,或者向创建它的团队报告该规则不正确或过于宽泛,或者两者兼而有之。检查文档以获取有关如何执行此操作的特定加载项。
例如,AdBlock Plus具有“可阻止项目”视图,该视图显示页面上所有被阻止的项目以及触发该阻止的规则。这些项目还包括XHR请求。
如果您的网址包含诸如“ advert”,“ ad”,“ doubleclick”,“ click”之类的字眼或类似内容…
例如:
GET googleads.g.doubleclick.net/pagead/id
static.doubleclick.net/instream/ad_status.js
…然后,广告拦截器将对其进行拦截。
将PrivacyBadger添加 到潜在原因列表中
就我而言,它是Avira的Chrome扩展程序和Firefox附加程序,称为“ Avira Browser Safety”。我在1.7.4版中遇到了问题。在我的特定情况下,我想登录一个名为gliffy.com的网站来制作图表,但是登录后我得到了一个空白页面。如果您在Chrome中使用F12(控制台),则可以看到所有这些ERR_BLOCKED_BY_CLIENT(以及其他)错误。
Opera Blocker和其他人检查网络中的所有文件/ URL。然后与列表进行比较。它是EasyPrivacy和EasyList。如果您的文件/ URL在此,则将被禁止。祝好运。
所以...我找到所有addBlockers的FilterLists!