为什么IE中没有调用回调函数($ .getJSON)?

时间:2012-04-10 17:04:58

标签: jquery callback getjson

为什么IE中没有调用回调函数?

  1. 致电Flickr:

    $.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos",
    {
        api_key: APIKey,    
        photoset_id: photoSetID,
        format: "json",
        per_page: 40,
        nojsoncallback: 1           
    }, displayImages);
    
    function displayImages(data) { alert('called'); }
    
  2. 致电YouTube:

    $.getJSON('https://gdata.youtube.com/feeds/api/users/username/favorites?alt=json', function(data)
    {
        alert('called');
    })
    
  3. 这两种类型的调用都可以在除IE之外的任何其他浏览器上运行。 你能解释一下为什么吗?

1 个答案:

答案 0 :(得分:1)

jQuery仅支持非IE< = 9浏览器中的跨域ajax。要在IE中使用这些API,您需要使用JSONp(如果可用)或添加jQuery plugin,以增加对IE使用的XDomainRequest api的支持。

如果可能,请使用JSONp; XDR有一些限制 - 有关详细信息,请参阅http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx