ajax
  • facebook
  • json
  • facebook-graph-api
  • jsonp
  • 2012-09-04 58 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。

    相關問題