최근에 일부 애드 블로커 확장 (예 : adBlocker plus)이 일부 Ajax 호출을 차단한다는 것을 깨달았습니다. 콘솔에서 오류가 발생합니다.
GET http://localhost/prj/conn.php?q=users/list/ net::ERR_BLOCKED_BY_CLIENT
왜 일부 Ajax 호출을 차단하지만 다른 Ajax 호출은 차단하지 않으며 그 원인은 무엇입니까? 사용자에게 애드 블로커를 끄도록 알리는 것 외에 다른 해결 방법이 있습니까?
답변
AdBlockers는 일반적으로 몇 가지 규칙을 가지고 있습니다. 즉, URI는 어떤 유형의 표현식과 일치합니다 (때로는 DOM과 표현식과도 일치하지만이 경우에는 중요하지 않습니다).
아주 작은 텍스트 (URI)에서만 작동하는 규칙과 표현식을 사용하면 잘못된 오탐이 발생하기 쉽습니다.
사용자에게 확장 프로그램 (적어도 사이트에서)을 사용 중지하도록 지시하는 것 외에도 확장 기능을 사용하여 확장 기능에 대한 자세한 정보를 제공하는 경우 확장 기능을 가져 와서 어떤 규칙 / 표현식에서 항목을 차단했는지 테스트 할 수도 있습니다. 범인을 식별 한 후에는 다른 URI를 사용하여 규칙을 트리거하지 않도록하거나 규칙을 작성한 팀에 부정확하거나 지나치게 광범위하게보고하거나 둘 다 할 수 있습니다. 이를 수행하는 방법에 대한 특정 애드온에 대한 문서를 확인하십시오.
예를 들어, 애드 블록 플러스는이 차단 가능한 항목을 보여줍니다 페이지에 차단 된 모든 항목과 블록을 트리거 규칙을 볼 수 있습니다. XHR 요청도 포함됩니다.
답변
URL에 “광고”, “광고”, “doubleclick”, “click”또는 이와 유사한 단어가 포함 된 경우…
예를 들면 다음과 같습니다.
GET googleads.g.doubleclick.net/pagead/id
static.doubleclick.net/instream/ad_status.js
… 그러면 광고 차단기가 차단합니다.
답변
파일 이름이 있으면 300
AdBlock이 페이지를 차단하고 ERR_BLOCKED_BY_CLIENT
오류가 발생 한다는 것을 발견했습니다 .
답변
잠재적 인 원인 목록에 PrivacyBadger 추가
답변
귀하의 URL에 키워드 “banner”가 포함되어 있으면 차단됩니다.
답변
여기 에서 설명 했듯이 광고 또는 스크립트 차단을 수행 하는 여러 확장 프로그램 외에도 다음과 같이 파일 이름 으로 발생할 수 있음을 알 수 있습니다.
특히 AdBlock Plus 에서 문자열 ” -300×600 “으로 인해 리소스로드 실패 ERR_BLOCKED_BY_CLIENT 문제가 발생합니다.
그림과 같이 이름에 ‘-300×600’패턴으로 인해 일부 이미지가 차단되었으며 특정 텍스트 패턴 은 AdBlock Plus의 표현식 목록 패턴과 일치합니다 .
답변
제 경우에는 Avira의 “Avira Browser Safety”라는 Chrome 확장 프로그램 및 Firefox 애드온이었습니다. 버전 1.7.4에 문제가있었습니다. 필자의 경우에는 다이어그램을 만들기 위해 gliffy.com 이라는 웹 사이트에 로그인하고 싶었지만 로그인 후 빈 페이지가 나타납니다. Chrome에서 F12 (콘솔)를 사용하면 이러한 ERR_BLOCKED_BY_CLIENT (및 기타) 오류가 모두 표시됩니다.