ajax
  • facebook
  • json
  • facebook-graph-api
  • jsonp
  • 2012-09-04 30 views 1 likes 
    1

    我正在开发一个Facebook应用程序。我正在尝试获取urls的喜欢,因为我通过一组urls迭代并将其添加到应该包含喜欢的div。这是我的阿贾克斯请求:Ajax请求Facebook图表不能在IE上工作

    $.ajax({ 
            type: "GET", 
            cache: false, 
            url: 'https://graph.facebook.com/?id='+videoUrl, 
            dataType : "json", 
            async: false, 
            header: "application/json", 
            success: function(data) { 
             if(data.shares == null) { 
              likeCount = 0; 
             } else { 
              likeCount = data.shares; 
             } 
            } 
          }); 
    

    这对Chrome,Firefox,Safari浏览器来说非常好。它不适用于任何IE。我认为这是一个缓存问题。请注意,我为请求添加了缓存:false。我尝试了JSONP,并且得到了类似的内容,但我无法在请求之外访问它。我也尝试添加到我的php:

    header("Cache-Control: post-check=0, pre-check=0", false); 
    

    它仍然无法正常工作。请帮帮我!

    回答

    4

    我有类似的问题。这对我有效:

    $.get('https://graph.facebook.com/?id='+videoUrl+'&callback=?', function(data) { 
            if(data.shares == null) { 
             likeCount = 0; 
            } else { 
             likeCount = data.shares; 
            } 
           }, 'json'); 
    

    “& callback =?”在URL中导致jQuery将其视为JSONP。请参阅What are the differences between JSON and JSONP? 以获得比我在此提供的更详细的解释。

    0

    这是因为IE对CORS的支持很差,所以只能在某些场景下工作。 为获得最佳支持,您应该通过JS SDK使用Facebook的FB.api。

    相关问题