2012-03-20 79 views
2

我可以使用另一双眼睛。这个脚本做我想在Chrome中(从谷歌Picasa网络相册呈现图片库),但在IE8中不呈现任何东西,任何人都可以看到任何明显的东西?为什么这个脚本不会在IE中做任何事

$(function() { 
    var json_Photo_URI = "https://picasaweb.google.com/data/feed/base/user/111727095210955830593/albumid/5420114965919213729?alt=json&fields=entry(title, media:group)&thumbsize=75" 
    $.ajax({ 
     type: 'GET', 
     url: json_Photo_URI, 
     success: function (data) { 

      var photo_URL = ""; 
      var photo_Thumb_Url = ""; 

      $.each(data.feed.entry, function (i, item) { 
       $.each(item.media$group.media$content, function (i, item) { photo_URL = item.url; }); 
       $.each(item.media$group.media$thumbnail, function (i, item) { photo_Thumb_URL = item.url; }); 

       var photo_Description = item.media$group.media$description.$t; 

       $('#gallery').append("<a href='" + photo_URL + "' title='" + photo_Description + "'><img src='" + photo_Thumb_URL + "'></a>"); 
      }); 

      $('#gallery a').lightBox({ txtImage: 'Photo', txtOf: '/' }); 
     }, dataType: 'json' 
    }); 
}); 
+0

您是否收到任何错误? – 2012-03-20 21:03:32

+0

我注意到的第一件事:失踪;在URL字符串..第二行后..不知道..可能 – gpasci 2012-03-20 21:03:53

+1

@ gpasci只要你的代码是在单独的行你不需要分号,只是良好的做法,使用它们 – Snuffleupagus 2012-03-20 21:05:51

回答

3

替换:

dataType : 'json' 

dataType : 'jsonp' 

参见:http://jsfiddle.net/b36v5/2/

+0

这样做的伎俩 - 谢谢。这里是一个解释json/jsonp的文章:http://stackoverflow.com/questions/4683114/sending-jsonp-vs-json-data – 2012-03-20 21:22:22

+0

@ E.J.Brennan:这将是一个很好的问题。我记得更积极地阅读有关IE缓存请求。指定'jsonp'会停用缓存。你可以在* cache *下的http://api.jquery.com/jQuery.ajax/阅读。 – 2012-03-20 21:32:09

1

这是关于跨域AJAX请求。您尝试访问的网站正确设置了access-control-allow-origin: *响应标头,以允许支持CORS的浏览器的AJAX请求。部分地,IE supports CORS。事实上,在IE中为了支持CORS,你必须使用一个名为XDomainRequest的不同对象,如以下博客文章中所解释的,以实现跨域请求。除了jQuery.ajax doesn't support it开箱即用。如果你仔细观察错误票,你会发现它已经关闭,因为there are plugins可以实现这个目标。

相关问题