0

YouTubeデベロッパーAPIv2を使用してプレイリストを取得しようとすると、ロードされたファイルが間違ったタイプであり、XMLではなくドキュメントであるという応答がChromeコンソールに継続的に表示されます。これが私が使用しているコードです:

$.get('https://gdata.youtube.com/feeds/api/playlists/8BCDD04DE8F771B2?v=2',
  function(data)
  {
    var doc = data;
    console.log( data );
  });

コンソールでの結果は次のとおり#documentです。結果がXMLドキュメントになることを期待しています。

4

2 に答える 2

0

よし、xmlだ、これはjqueryによるxml表現

あなたはxml2jsonを使うことができます

于 2013-01-25T21:36:34.737 に答える
0

確かにフィードから xml ドキュメントを取得しています。jQuery ajax リクエストがそれを認識していることを確認したい場合は、次のように「dataType」パラメータを指定することもできます。

$.get('https://gdata.youtube.com/feeds/api/playlists/8BCDD04DE8F771B2?v=2',
  function(data)
  {
    console.log( 'An xml feed is being retrieved, true or false:'+($(data).children('feed').length == 1).toString());
  },'xml');

または、「エラー」オプションを使用することでデバッグに役立つ、ロングハンドの $.ajax メソッドを使用します。

$.ajax({
    url: 'https://gdata.youtube.com/feeds/api/playlists/8BCDD04DE8F771B2?v=2',
    dataType: 'xml',
    success: function(data){
        console.log( 'An xml feed is being retrieved, true or false:'+($(data).children('feed').length == 1).toString());
    },
    error: function(xhr,stat,err){ console.log(stat+': '+err); }
});

$.ajax メソッドを使用した例を次に示します。実際、dataType パラメータを指定しなくても有効な xml として認識されています: http://jsfiddle.net/UZddq/2/

json で作業する方が簡単かもしれません。URL に「alt」パラメーターを指定すると、YouTube から json 形式でフィードを取得できます。

$.ajax({
    url: 'https://gdata.youtube.com/feeds/api/playlists/8BCDD04DE8F771B2?v=2&alt=json',
    dataType: 'json',
    success: function(data){
        console.log( 'A json feed is being retrieved, true or false:'+data.hasOwnProperty('feed').toString());
    },
    error: function(xhr,stat,err){ console.log(stat+': '+err); }
});

json バージョンの例を次に示します: http://jsfiddle.net/hvFQj/2/

于 2013-01-26T17:40:41.870 に答える