有时当我通过json提取youtube视频时遇到此错误,这是一个示例:
XMLHttpRequest无法加载https://gdata.youtube.com/feeds/api/users/IcarusTouma?&alt=json。 Access-Control-Allow-Origin不允许使用Origin http://localhost。
我尝试使用jsonp,但youtube不接受jsonp。
因此,请从youtube提取视频。
$. getJSON ('https://gdata.youtube.com/feeds/api/videos/' + id_video + '? & alt = json', function (data) {
if (typeof data! == "undefined" && data)
{
var title = data ['entry'] ['title'] ['$ t'];
var thumb = data ['entry'] ['media $ group'] ['media $ thumbnail'] [0] ['url'];
var title = data ['entry'] ['author'] [0] ['name'] ['$ t'];
$. getJSON ('https://gdata.youtube.com/feeds/api/users/' + author + '? & alt = json', function (data) {
author_thumbnail var = data ['entry'] ['media $ thumbnail'] ['url'];
$ ('.items').append(html_carousel (thumb, title, author_thumbnail, author, 5,' youtube ', id_video, author'));
});
}
});
最佳答案
刚刚检查了YouTube数据API引用文档后,无论是JSON还是较新的JSON-C格式,它们都接受JSON-P,允许您通过callback
GET字符串参数指定回调。该链接将证明这是真的:
https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=jsonc&callback=functionName
在这种情况下,长JSON对象返回包装在对functionName
的函数调用中。下一个URL是相同的调用,但使用旧的(且已过时)JSON格式:
https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=json&callback=functionName
数据有些不同,但结果集相同,包装在另一个对functionName
的调用中。现在,这些调用是查询,用于获取与搜索参数(“棒球”)匹配的视频。但是我敢肯定,仔细阅读他们的引用文档(对于JSON-C和JSON格式)将产生使它正常工作所需的内容,作为JSONP调用,在查询字符串中指定回调。
关于jquery - 无法从youtube通过json提取视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552168/