如何检查用户是否可以使用Javascript访问YouTube

时间:2019-02-07 02:40:24

标签: javascript youtube cors

我需要以编程方式检查用户是否可以访问YouTube,因为YouTube在世界某些地方被禁止。我需要能够使用JavaScript做到这一点。

我尝试过的方法: 1)动态创建图像并将源设置为YouTube域上的已知图像-我在这里遇到了CORS问题 2)使用XMLHttpRequest创建一个简单的GET请求(同样的问题) 3)看一下YouTube API ..似乎没有公开可以告诉我GET请求是否成功的方法。.当然,所有调用都是通过https://www.googleapis.com/youtube/v3路由的,严格来说,这不是与对http://www.youtube.com

的请求完全相同

这里有明显的我想念的东西吗?将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

CORS是服务器端标头。如果您收到CORS标头,那么您将访问正在响应标头响应的Youtube服务器,这可能意味着youtube没有被“阻止”。

所以这样的事情应该可以正常工作:

async function canAccessYoutube() {
      try {
        const request = await fetch(
          "https://www.youtube.com/",
          {
            mode: "no-cors"
          }
        );
        return true;
      } catch {
        return false;
      }
}

假设阻止是基于DNS的,则可以通过在自己的计算机上阻止Youtube来测试功能。如果您使用的是Mac或Linux计算机,请将以下内容添加到您的/etc/hosts文件中:

0.0.0.0 youtube.com
0.0.0.0 www.youtube.com
::0 www.youtube.com
::0 youtube.com

您可能需要重新启动计算机才能使其生效。