检查用户是否阻止了第三方域

Check if user is blocking 3rd party domain

本文关键字:第三方 用户 是否 检查      更新时间:2023-09-26

我遇到了一个问题,我们的很多支持电话都是关于我们的图像无法加载的,因为用户阻止了Amazon S3或类似的第三方服务。 我使用第三方服务来托管图像,视频和一些javascript。 有没有办法通过javascript检测客户端是否阻止了域,以便我们显示消息而不是让用户联系支持人员?

$.ajax 'http://aws.amazon.com/s3/',
  type: 'GET',
  dataType: 'html'
  complete: (e, xhr, settings) ->
    if e.status == 200
      console.log "Not Blocking S3"
    else
      console.log "Blocking S3"

根据评论,我进行了尝试,但仍然不起作用。 当我没有块时,它会返回阻塞。

上面的示例 coffeescript 代码不起作用,因为我认为会发生安全错误,因为它正在不同的域上执行 ajax。 Firebug 以红色显示请求,但显示 200。 e.状态返回 0。

从要检查的域加载图像。

<img id="checkImg" src="https://www.google.com/images/srpr/logo3w.pngAAA" />

只是一个常规的图像标签(请注意末尾的AAA使其不起作用)。然后,您可以检查图像的宽度以查看它是否加载。

if(document.getElementById('checkImg').clientWidth != 275)
    alert("Error")

谷歌徽标的宽度为275px,但错误图像(至少在Chrome中)仅为18px。因此,如果图像不是 275px 宽,我知道它没有加载。

演示