Réponse de la requête JSONp à l'erreur youtube oembed call giving "invalid label"
je fais un appel JSONp à youtube en utilisant oEmbed et sur la réponse firebug donne "étiquette invalide" erreur
Voici mon code
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);
});
Quelqu'un a rencontré un problème similaire avec les requêtes osbed jsonp?
2 réponses
problème
L'API YouTube ne supporte pas JSONP-voir:
Solution
il n'est pas nécessaire d'avoir un mandataire côté serveur et aucune clé API n'est requise.
au lieu de:
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);
});
essayez ceci, en utilisant le service 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);
});
comme bonus cela fonctionnera aussi avec les liens Vimeo lorsque vous changez url
en:
var url = "https://vimeo.com/45196609";
et beaucoup d'autres supported sites .
Démo
Voir DÉMO sur JS Fiddle.
voir aussi
Voir aussi ces questions:
L'API Oembed de Youtube n'enroule pas actuellement la réponse JSON dans un rappel. JSONP n'est tout simplement pas compatible atm. et il semble que cela ne changera pas de sitôt: https://groups.google.com/forum/?fromgroups=#!topic / youtube-api-gdata/5KuXxlLK07g
voici un billet pour une demande de caractéristique liée: https://code.google.com/p/gdata-issues/issues/detail?id=4329
la solution la plus facile serait d'implémenter un petit proxy côté serveur pour faire les requêtes au nom du client.