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

时间:2015-11-19 19:27:22

标签: javascript ajax url adblock

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

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

1 个答案:

答案 0 :(得分:2)

编辑:对于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;我最初认为使用外部URL是一个好主意,但如果它们被所有者弄无效,你就会得到误报。

我使用Adblock Plus进行了测试,但它确实有效。如果这是被Ghostery阻止的网址,它也应该有用;否则,您可以尝试使用不同的网址来查看被阻止的内容。

您也可以使用jQuery的$.ajax函数执行此操作,但我倾向于使用vanilla JavaScript。