Internet Explorer中通过JavaScript请求YouTube API JSON feed的问题



我一直在使用youtube api和javascript来生成一个播放器区域,然后是允许用户点击并滚动视频以在播放器区域播放新视频的箭头。这在除ie以外的所有其他浏览器中都可以正常工作,在ie7,8和9中似乎可以正常工作,但只在某些操作系统上。例如,在windows 8中使用模拟器似乎没问题。任何帮助吗?

JSfiddle: http://jsfiddle.net/9bBCG/(由于某些原因,这里不工作,认为json提要可能不工作-但代码确实工作)

这是我检索提要的位置:

var playListURL = 'http://gdata.youtube.com/feeds/api/users/BadbyMicroMovies/uploads?v=2&alt=json';
var videoURL= 'http://www.youtube.com/watch?v=';
$.getJSON(playListURL, function(data) {
    var list_data="";
    $.each(data.feed.entry, function(i, item) {
        var feedTitle = item.title.$t;
        var feedURL = item.link[1].href;
        var fragments = feedURL.split("/");
        var videoID = fragments[fragments.length - 2];
        var url = videoURL + videoID;
        var thumb = "http://img.youtube.com/vi/"+ videoID +"/default.jpg";
        list_data += '<li><a class="vid-link" href="'+ url +'?rel=0" title="'+ feedTitle +'"><img alt="'+ feedTitle+'" src="'+ thumb +'"</a></li>';
    });
    $(list_data).appendTo("#youtube-feed");

任何帮助都是非常感激的,因为我很困惑!

Internet Explorer 10版本才开始支持标准CORS。如果你使用的是旧版本的Internet Explorer,你不能直接使用XMLHttpRequest请求不同域的资源(这就是$.getJSON()调用所做的)。

相反,您需要使用类似JSON-P的方法,它也可以在其他浏览器上工作。您可以通过使用$.ajax()调用而不是$.getJSON()来实现这一点,并指定dataType: 'jsonp'参数,正如jQuery文档中解释的那样。

相关内容

  • 没有找到相关文章

最新更新