在某些 AJAX 调用中出现“net::ERR_BLOCKED_BY_CLIENT”错误
Posted
技术标签:
【中文标题】在某些 AJAX 调用中出现“net::ERR_BLOCKED_BY_CLIENT”错误【英文标题】:Getting "net::ERR_BLOCKED_BY_CLIENT" error on some AJAX calls 【发布时间】:2014-06-14 00:56:49 【问题描述】:最近我意识到,一些 adblocker 扩展(例如 adBlocker plus)会阻止一些 Ajax 调用。我在控制台上收到该错误:
GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT
为什么它会阻止一些 Ajax 调用,但不会阻止其他调用,这是什么原因造成的?除了告诉用户关闭广告拦截器之外,还有其他解决方法吗?
【问题讨论】:
I am getting Failed to load resource: net::ERR_BLOCKED_BY_CLIENT with Google chrome的可能重复 我写了一篇博文和视频,应该可以对这个问题有所了解。 love2dev.com/blog/… 这行得通。右键单击 Chrome 中的 AbBlock 插件(右上角),然后单击“在所有站点上暂停” 有一个非假设性的答案会很棒。我没有使用广告拦截器,但似乎找不到正确调试它的方法。为什么浏览器不识别块的来源是我无法理解的。 【参考方案1】:AdBlocker 通常有一些规则,即它们将 URI 与某种类型的表达式进行匹配(有时它们也会将 DOM 与表达式匹配,在这种情况下这并不重要)。
仅对一小部分文本(URI)进行操作的规则和表达式很容易产生一些误报...
除了指示您的用户禁用他们的扩展程序(至少在您的网站上)之外,您还可以获取扩展程序并测试哪些规则/表达式阻止了您的内容,前提是该扩展程序提供了足够的详细信息。一旦确定了罪魁祸首,您可以尝试通过使用不同的 URI 来避免触发规则,向创建它的团队报告规则不正确或过于宽泛,或两者兼而有之。 查看文档以了解如何执行此操作的特定插件。
例如,AdBlock Plus 有一个可阻止项目 视图,显示页面上所有被阻止的项目以及触发阻止的规则。这些项目还包括 XHR 请求。
【讨论】:
我们最终不得不更改 api,但我们解决了它。非常感谢您的提示... 啊!我只花了 30 分钟或更长时间排除其他问题 - 仅此而已! :( 这里也一样。我一直在更改我的代码并寻找这个问题的原因,结果证明我的 AdBlock 只是阻止了我正在处理的调用:D 搜索了半天为什么 delete 和 get 不起作用,发现了这个……太有趣了,我们甚至都不生气:)) 您可以在安装了 Adblock Plus 插件的 Firefox 中启用此视图,方法是按 Ctrl + Shift + V。我没能在 Chrome 中打开它,但默认情况下过滤器列表在两者中是相同的浏览器,所以它成功了,并帮助 mi 找到了导致 AdBlock 做出反应的部分 url。【参考方案2】:如果您的网址包含诸如“广告”、“广告”、“双击”、“点击”或类似的字词……
例如:
GET googleads.g.doubleclick.net/pagead/id
static.doubleclick.net/instream/ad_status.js
...然后广告拦截器将阻止它。
【讨论】:
太棒了。我有一个 admin 页面 ;) 在我的情况下,问题是有一个名为“ads”的文件夹,其中包含网站上显示的图片。我只是将文件夹更改为“发布”并解决了。 我已经为页面禁用了广告拦截器,但仍然出现同样的错误 据我了解,ad_status.js 是在使用 google 产品(例如嵌入式 youtube 视频)时创建的。那么有这个文件时甚至可以避免adBlock吗? 等等,什么,为什么广告拦截器会阻止这些网址?【参考方案3】:我发现如果文件名中包含300
,AdBlock 会阻止该页面并引发ERR_BLOCKED_BY_CLIENT
错误。
【讨论】:
我已经确认了这一点,并在 unsplash.com 上通知了团队【参考方案4】:将PrivacyBadger 添加到潜在原因列表中
【讨论】:
我刚刚遇到了 PrivacyBadger 阻止某些内容的问题。我认为原因是内容位于“测试”子域中。即 test.example.com,但我不确定是不是这个原因。 +1 ,我已经尝试解决这个问题好几天了,就在看到这个话题之后,我发现 Privacy Badger 是罪魁祸首【参考方案5】:我发现一个情况是,如果你的网址包含关键字banner,它也会被屏蔽。
【讨论】:
【参考方案6】:因为一直是explained here,除了multiple extensions 执行广告或脚本拦截,您可能知道这可能会通过文件名如下发生:
特别是在 AdBlock Plus 中,字符串“-300x600”导致资源加载失败 ERR_BLOCKED_BY_CLIENT 问题。
如图所示,部分图片因其名称中的“-300x600”模式而被屏蔽,该特定文本模式与 AdBlock Plus 中的表达式列表模式匹配 .
【讨论】:
【参考方案7】:就我而言,它不是广告拦截器,而是 Bitdefender 反跟踪器。禁用它然后你就没事了。
【讨论】:
【参考方案8】:我的哨兵呼叫因此失败,在 Brave 浏览器上禁用勇敢的广告屏蔽确实为我解决了这个问题。
【讨论】:
【参考方案9】:在我的例子中,它是 Avira 的 Chrome 扩展和 Firefox 插件,称为“Avira 浏览器安全”。我遇到了 1.7.4 版的问题。 在我的具体情况下,我想登录一个名为gliffy.com 的网站来制作图表,但登录后我得到了一个空白页面。如果您在 Chrome 中使用 F12(控制台),您可以看到所有这些 ERR_BLOCKED_BY_CLIENT(和其他)错误。
【讨论】:
【参考方案10】:如果有任何广告拦截器(Brave 浏览器使用默认拦截器),请将其关闭。这对我有用
【讨论】:
【参考方案11】:Opera Blocker 和其他人检查网络中的所有文件/网址。然后与the list 进行比较。它是 EasyPrivacy 和 EasyList。如果您的文件/网址在this,您将被禁止。祝你好运。
所以...我为所有 addBlocker 找到 FilterLists!
【讨论】:
以上是关于在某些 AJAX 调用中出现“net::ERR_BLOCKED_BY_CLIENT”错误的主要内容,如果未能解决你的问题,请参考以下文章