运行 对 URL 的 Ajax 请求因检测 Adblocker (Ghostery) 而被阻止

Run an Ajax request on a URL blocked for detecting Adblocker (Ghostery)

我需要一些简单的代码来检测被阻止的 url。

SethWhite 说过:You could also try to run an ajax request on a URL blocked by an adblocker. If it succeeds, there's no adblocker, if it fails, there's an adblocker.

我可以使用 microajax 按以下方式执行此操作:

microAjax("/resource/url", function (res) {
  alert (res);
});

如果请求不成功,如何调用window.open

编辑:对于 microAjax,请查阅其文档。我想在响应中您可以找到响应代码。如果代码是200就成功了,可以运行window.open()。否则,请求可能会被阻止。

  var request = new XMLHttpRequest();
  request.onreadystatechange = function() {
    if(request.readyState === 4 && request.status === 200 ) {
      console.log('No blocker');
    }
    else if(request.readyState === 4 && request.status === 0){
      console.log('Blocker exists');
    }
  };
  request.open("GET","pathTo/ads.html");
  request.send();

这使用本地URL;我最初认为使用外部 URLs 是个好主意,但如果它们的所有者使它们无效,你就会得到误报。

我使用 Adblock Plus 对此进行了测试,它有效。如果这是被 Ghostery 阻止的 URL,它应该也能正常工作;否则,您可以尝试不同的 URLs 以查看被阻止的内容。

您也可以使用 jQuery 的 $.ajax 函数来执行此操作,但我更喜欢原版 JavaScript。