6

我正在使用 oembed 对 youtube 进行 JSONp 调用,并且在响应时 firebug 给出“无效标签”错误

这是我的代码

site = "www.youtube.com";
url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("http://"+site+"/oembed?callback=?",{"format":"json","url":url},function(data){
    alert("hello:\n"+data);
    alert(data.provider_url);
});

任何人在使用 oembed jsonp 请求时遇到过类似的问题?

4

2 回答 2

3

问题

YouTube API 不支持 JSONP - 请参阅:

解决方案

不需要服务器端代理,也不需要 API 密钥。

代替:

var url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("http://www.youtube.com/oembed?callback=?",
    {"format": "json", "url": url}, function (data) {
    alert("hello:\n"+data);
    alert(data.provider_url);
});

试试这个,使用Noembed服务:

var url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("https://noembed.com/embed?callback=?",
    {"format": "json", "url": url}, function (data) {
    alert("hello:\n" + data);
    alert(data.provider_url);
});

作为奖励,当您更改为以下内容时,这也适用于 Vimeo 链接url

var url = "https://vimeo.com/45196609";

和许多其他支持的网站

演示

请参阅JS Fiddle 上的演示

也可以看看

另请参阅这些问题:

于 2015-08-24T19:18:34.623 回答
0

Youtube 的 Oembed API 目前没有将 JSON 响应包装在回调中。ATM 根本不支持 JSONP。而且似乎这不会很快改变: https ://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/5KuXxlLK07g

这是相关功能请求的票证:https ://code.google.com/p/gdata-issues/issues/detail?id=4329

最简单的解决方案是实现一个小型服务器端代理来代表客户端发出请求。

于 2013-04-16T14:35:11.807 回答