如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题
Posted
技术标签:
【中文标题】如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题【英文标题】:How to get Youtube video title with v3 URL API in javascript w Ajax & JSON 【发布时间】:2015-03-17 02:44:07 【问题描述】:我只是想获取 Youtube 视频的标题。好像想不通到目前为止,我有这个:
q = 'https://www.googleapis.com/youtube/v3/videos?id='+ itemId +'&key='+ ytApiKey +'&fields=items(snippet(channelId,title,categoryId))&part=snippet' ;
$.ajax(
url: q,
dataType: "jsonp",
success: function(data)
alert(data.items[0].title);
console.log(data.snippet.title);
,
error: function(jqXHR, textStatus, errorThrown)
alert (textStatus, + ' | ' + errorThrown);
);
谢谢,
【问题讨论】:
【参考方案1】:以下 jquery 代码将获取视频的标题。
$.ajax(
url: "https://www.googleapis.com/youtube/v3/videos?id=" + videoId + "&key="+ apiKey + "&fields=items(snippet(title))&part=snippet",
dataType: "jsonp",
success: function(data)
console.log(data.items[0].snippet.title);
,
error: function(jqXHR, textStatus, errorThrown)
alert (textStatus, + ' | ' + errorThrown);
);
【讨论】:
这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript?【参考方案2】:我让它工作了
https://www.googleapis.com/youtube/v3/videos?id=itemId&key=apiKey&fields=items(snippet(title))&part=snippet
和
alert(data.items[0].snippet.title);
所以,语法没有太大问题!但是我在设置 Google API 的“允许的引用者”时发现问题确实出在后端。使用 V3 API,您可以选择 API 应该属于哪些引用者,因此其他人不能简单地窃取您的 API 并使用它。因此,如果请求来自您指定的域名/IP,API 将起作用。 当我不给它限制时,代码可以工作,但是当我进入我的域时它会失败!我输入了 .mydomainname.com/ ,与建议的格式相同,但不知何故出错了。现在我已经弄清楚原因了。
【讨论】:
这样做会不会不好?由于您必须将您的 apiKey 公开给任何人都可以查看的 javascript? 我的理解是,您可以在 Google 的设置页面中将您的域链接到您的 API 密钥!这样 Youtube 就知道 API 调用的来源,因此其他人不能简单地使用您的 API 密钥。不过,我遇到了一些让它工作的问题,所以我有一个问题悬而未决。那里有评论,但我还没试过:***.com/questions/28032237/… 收到此错误消息怎么办:No 'Access-Control-Allow-Origin' header is present on the requested resource.
这是 CORS 问题。你可以查查看。如果您使用 jQuery 或从后端服务器调用,则有不同的处理方式。并查看此帖子:***.com/questions/47523265/…以上是关于如何使用 Ajax 和 JSON 在 javascript 中使用 v3 URL API 获取 Youtube 视频标题的主要内容,如果未能解决你的问题,请参考以下文章
上传文件后,如何在 Django 中使用 AJAX 更新表(与 JavaScript 链接)?