最近、一部の広告ブロッカー拡張機能 (adBlocker plus など) が一部の Ajax 呼び出しをブロックしていることに気付きました。コンソールに次のエラーが表示されます:
GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT
一部の Ajax 呼び出しはブロックされるのに、他の呼び出しはブロックされないのはなぜですか。その原因は何ですか。ユーザーに広告ブロッカーをオフにするように指示する以外に回避策はありますか。
ベストアンサー1
AdBlockers には通常、いくつかのルールがあり、URI を何らかのタイプの式と照合します (DOM を式と照合することもあります。この場合、これは重要ではありません)。
ほんの少しのテキスト (URI) のみを操作するルールと式を使用すると、誤検知が発生しやすくなります...
ユーザーに拡張機能を無効にするよう指示する (少なくとも自分のサイトでは) ほかに、拡張機能を入手して、どのルール/式が自分のコンテンツをブロックしたかをテストすることもできます (拡張機能がそれに関する十分な詳細を提供している場合)。原因を特定したら、別の URI を使用してルールのトリガーを回避するか、ルールが間違っているか範囲が広すぎることをルールを作成したチームに報告するか、またはその両方を行うことができます。その方法については、特定のアドオンのドキュメントを確認してください。
たとえば、AdBlock Plus には、ページ上のすべてのブロックされたアイテムとブロックをトリガーしたルールを表示するブロック可能なアイテムビューがあります。これらのアイテムには XHR リクエストも含まれます。