0

在尝试使用 YouTube 开发人员 API v2 检索播放列表时,我不断在 Chrome 控制台中收到响应,指出加载的文件类型错误,并且是文档,而不是 XML。这是我正在使用的代码:

$.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 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 方法,它也可以通过使用“error”选项来帮助调试:

$.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 方法的示例,实际上它被识别为有效的 xml,甚至没有指定 dataType 参数:http: //jsfiddle.net/UZddq/2/

使用 json 也可能更容易。您可以通过在 url 中指定“alt”参数以 json 格式从 youtube 检索提要:

$.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 回答
0

没关系,是xml,这是jquery的xml表示

你可以使用xml2json

于 2013-01-25T21:36:34.737 回答