Ajax对Facebook图表的请求不适用于IE

时间:2012-09-04 17:27:07

标签: ajax facebook json facebook-graph-api jsonp

我正在开发一个Facebook应用程序。我正在尝试获取网址的喜欢,因为我正在迭代一系列网址并将其添加到应包含喜欢的div中。这是我的ajax请求:

 $.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浏览器。我认为这是一个缓存问题。请注意,我在请求中添加了cache:false。我尝试了JSONP并得到了喜欢但我无法在请求之外访问它。我也尝试将其添加到我的php:

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

它仍然不起作用。请帮帮我!

2 个答案:

答案 0 :(得分: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? 比我在这里提供的更详细的解释。

答案 1 :(得分:0)

这是因为IE对CORS的支持非常糟糕,因此仅适用于某些情况。 为获得最佳支持,您应该通过JS SDK使用Facebook的FB.api。