2014-03-27 17 views
1

我使用$ .getJSON從Vimeo加載視頻庫,並且在任何版本的IE瀏覽器中,它在所有瀏覽器中都能正常工作。我無法弄清楚我做錯了什麼。getJSON將無法在IE中加載(任何版本)

這裏是js文件,其中的getJSON運行:

console.log('file load'); 

var jsonURL = 'http://vimeo.com/api/v2/album/1822727/videos.json'; 

$.getJSON(jsonURL, function(data){ 
    $.each(data, function (index, value) { 
    var videoID = value.id; 
    var videoThm = value.thumbnail_large; 
    $('#galThms').prepend('<li id="thm' + videoID + '" style="background-image:url(' + videoThm + ');"><a title="' + videoID + '" href="#playVideo"></a></li>'); 
    console.log('json success'); 
    }); 
    $(function() { 
     $('.galleryThms a').click(function() { 
     $('#loadVideo').slideDown(); 
     $('.galleryThms a').html(''); 
     $(this).html('<div class="currentOverlay"><ul><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul></div>'); 
     $('<div class="watchedVideo"></div>').appendTo($(this).parent()); 
     $('.galleryThms a').css('background-image', 'url(/images/gallery-play-button.png)'); 
     $(this).css('background-image', 'none'); 

     //Embed Video 
     var vimeoEmbedID = $(this).attr("title"); 
     $('#loadVideo').html('<iframe src="//player.vimeo.com/video/' + vimeoEmbedID + '?title=0&amp;byline=0&amp;portrait=0&amp;color=57bec7&amp;autoplay=1" width="1920" height="1080" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'); 

    }); 

    }); 
}); 

的活生生的例子可以在這裏找到:http://wavesmediagroup.com/weddings/portfolio/

+0

嘗試使用'$ .ajax'並傳入一個錯誤處理程序,以便您可以知道發生了什麼。這是我不使用'$ .getJSON'的原因之一。另外,嘗試更高版本的jQuery 1.1是非常古老的。 –

+0

我有jQuery 1.11。只是嘗試升級到V2,但看看是否會有所幫助。不再需要IE8,所以它反正是時候了。如果我使用ajax,是否可以替換getJSON或者整個語法是否改變?抱歉,無知,更新到Javascript土地。 – jons

回答

1

這是一個跨域問題。本文在這裏,http://e-mats.org/2010/01/jquery-getjson-and-the-same-origin-policy,在細節,你只需添加解釋說:

?callback=? 

...你跨域JSON文件的末尾,和jQuery處理剩下的。所以我的URL現在看起來像:

http://vimeo.com/api/v2/album/1822727/videos.json?callback=? 

...它完美的工作!

+0

我想如果你使用jQuery的更高版本,它會檢測到跨域並自動使用jsonp –

+0

我一直在使用最新的2.x版本。 – jons

相關問題