2010-06-03 6 views
0

J'essaie d'utiliser l'API de youtube pour ramener une liste des vidéos d'un utilisateur. L'URL de requête ressemble à quelque chose comme:
http://gdata.youtube.com/feeds/api/users/username/uploads
avec 'nom d'utilisateur' étant le nom d'utilisateur correct. Cela ramener l'URL appropriée dans le navigateur. Cependant, lorsque je tente d'accéder à cette URL via jQuery de .ajax $ ou .get $ fonctions, en utilisant quelque chose comme:jquery ajax vs navigateur url

$.ajax({ 

    //set parameters 
    url: "http://gdata.youtube.com/feeds/api/users/username/uploads", 
    type: "GET", 

    //on success 
    success: function (data) { 
     alert("xml successfully captured\n\n" + data); 
    }, 
    //on error 
    error:function (XMLHttpRequest, textStatus, errorThrown, data){ 
     alert(" We're sorry, there seem to be a problem with our connection to youtube.\nYou can access all our videos here: http://www.youtube.com/user/username"); 
     alert(data); 
    }  
    }); 

    $.get("http://gdata.youtube.com/feeds/api/users/username/uploads", function(data){ 
    alert("Data Loaded: " + data); 
    }); 

Je reçois un document vide est retourné. Des idées pourquoi c'est?

Répondre

2

Ici, vous tapez same-origin policy, ce qui empêche les requêtes inter-domaines ... mais vous pouvez faire ce que vous voulez avec JSONP dans ce cas (puisque youtube le supporte, tant que les données JSON sont une option dans votre code, généralement c'est préféré donc j'espère que c'est une solution pour vous). L'utilisation de JSONP ressemble à ceci:

$.ajax({ 
    url: 'http://gdata.youtube.com/feeds/api/users/username/uploads?alt=json​', 
    dataType: 'jsonp'​​​​, 
    success: function(data) { 
     console.log(data); //entire object here 
     //another example 
     alert("Feed title: " + data.feed.title.$t); 
    } 
});​ 

You can see a working demo here, this grabs the video upload feed for nike. Il suffit d'explorer l'objet dans la console pour voir quelles données vous voulez et l'attraper :)

+0

Merci beaucoup! cependant, je reçois une erreur "jeton inattendu: ILLEGAL" après la ligne avec "type de données: 'jsonp'" ... – danwoods

+0

Même lorsque je copie directement l'exemple de code ... – danwoods

+0

Peu importe. Quelques personnages invisibles cachés dans le code :) Merci encore, j'apprécie ... – danwoods