我正在使用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请求的类似问题?
答案 0 :(得分: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);
});
作为奖励,当您将url
更改为:
var url = "https://vimeo.com/45196609";
以及其他许多supported sites。
请参阅JS Fiddle上的DEMO。
另见这些问题:
答案 1 :(得分:0)
Youtube的Oembed API目前不会在回调中包装JSON响应。简直不支持JSONP atm。,似乎这不会很快改变: https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/5KuXxlLK07g
以下是相关功能请求的故障单:https://code.google.com/p/gdata-issues/issues/detail?id=4329
最简单的解决方案是实现一个小型服务器端代理,代表客户端发出请求。