2010-08-25 4 views
1

J'utilise l'URI suivante comme ça pour passer à getJSON de jQuery.Problème avec jQuery getJSON

var publicVidsUrl = 'http://api.publicvideos.org/v/0/clips?callback=?'; 

$.getJSON(publicVidsUrl, function(data){ 
    alert(data.length); 
}); 

... mais cela échoue. Bien que le JSON renvoyé soit valide en JSON, je ne suis pas sûr. Les doubles guillemets échappés semblent bien, mais je m'interroge sur les guillemets autour de chaque objet dans le tableau parent.

Quelqu'un peut-il s'il vous plaît aider à clarifier d'où vient cette erreur? Plus précisément, je reçois cette erreur de jQuery dans la console Firebug:

(d || "").split is not a function 

J'utilise jQuery 1.4.2

+0

Vous avez installé Firebug, alors avez-vous essayé 'console.dir (data);' dans votre callback? – meagar

+7

Cette URL ne renvoie pas [JSONP] (http://en.wikipedia.org/wiki/JSON#JSONP). – James

+1

"Les doubles guillemets échappés semblent bien" - mais en fait, ils ne le sont pas. –

Répondre

0

Vous devez citer vos chaînes, si vous les omettre dans votre code réel que vous » ll obtenir une erreur de syntaxe avant tout autre arrive:

var publicVidsUrl = "http://api.publicvideos.org/v/0/clips?callback=?"; 
+0

Il y a des guillemets autour de la chaîne, des guillemets simples. – jerome

+0

Il n'y avait pas au moment où j'ai posté la réponse, et je suis incapable de le supprimer pour une raison quelconque; en cliquant sur supprimer, vous pouvez voter pour le supprimer plutôt que de le supprimer purement et simplement. – meagar

1

L'API ne semble pas être destiné à la consommation javascript, plus probablement sa destinée à être traitée Serverside; PHP, Python, C# etc.

Tout javascript utilisé échouera en raison de problèmes inter-domaines. À moins que vous ne travailliez pour publicvideos.org ou que vous ayez accès au script de publication sur leur domaine.

+0

Si vous exécutez le code, vous verrez que la fonction getJSON renvoie JSONP, je ne pense pas que ce soit un problème de crossdomain. – jerome

+0

Non, il retourne JSON, il y a une différence http://en.wikipedia.org/wiki/JSON#JSONP –

0

Bon, je ne récupère pas JSONP de l'API Public Videos après tout. J'espère que cela sera trié d'une manière ou d'une autre.

0

Ce JSONP n'est pas valide. JSONP valide devrait commencer avec un? et tout devrait être enveloppé entre parenthèses. Voici un exemple de format approprié JSONP:

?({"posts":[{"id":"6", "url":"sample-6", "title":"sample 6", "content":"sample 6"},{"id":"5", "url":"sample-5", "title":"sample 5", "content":"sample 5"}]}); 
0

JSONP est pas pris en charge, si une demande côté client à cette API ne fonctionnera pas.

Regardez tout le chemin en bas: http://wiki.publicvideos.org/api/main

Edit: Haha, juste remarqué qui était votre propre poste sur le wiki Jérôme .. Je vais laisser ça ici pour l'amour de la postérité :)