检查用户是否阻止第三方域(Check if user is blocking 3rd party d

2019-09-18 00:50发布

我遇到了一个问题,我们很多的支持电话是我们的图像不加载,因为用户拦截的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"

根据该意见,我做它一个尝试,但它仍然没有工作。 当我没有阻止它返回阻塞。

因为我相信,因为它是在不同的领域做一个AJAX发生安全性错误上面的示例代码的CoffeeScript不起作用。 萤火虫以红色显示的要求,但是他说,200 e.status将返回0。

Answer 1:

从您要检查对域加载图像。

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

只是一个普通的图像标记(注意AAA末,使其无法正常工作)。 然后,您可以检查图像的宽度,看它是否加载与否。

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

谷歌标志是275px宽,但误差图像(在Chrome中至少)只有18像素。 因此,如果图像是不是275px宽,我知道这不加载。

演示



文章来源: Check if user is blocking 3rd party domain