如何通过javascriptajax解决'youtube link cors problem'?

How to solve 'youtube link cors problem' via javascript ajax?

我想通过 Javascript AJAX 请求 Youtube link 的状态代码。(我想检查视频是否已被删除或仍然存在)

但是当我尝试请求状态代码时,我在浏览器控制台中收到以下错误消息。

Access to XMLHttpRequest at 'https://www.youtube.com/~~~' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

所以..我该如何解决这个问题?我的操作服务器包括 ruby on rails。

谢谢!

$.each(contentUrls, function(i, item) {
  $.ajax({
    crossOrigin: true,
    url: item,
    dataType: 'json',
    success: function() {
      $('#valid' + i).html('V');
    },
    error: function(err) {
      console.log(err.statusCode);
      $('#valid' + i).html('X');
    },
  });
});

Ruby 不是这里的问题。问题是您正试图 AJAX 进入与您呼叫的域不同的域。

尝试将数据类型更改为 dataType: "jsonp",这将附加回调。

$.each(contentUrls, function(i, item) {
  $.ajax({
    crossOrigin: true,
    url: item,
    dataType: 'jsonp',
    success: function() {
      $('#valid' + i).html('V');
    },
    error: function(err) {
      console.log(err.statusCode);
      $('#valid' + i).html('X');
    },
  });
});

查看 DataType 部分中的 https://api.jquery.com/jquery.ajax/