【问题标题】:'jQuery.getJSON' not working in Internet Explorer 8'jQuery.getJSON' 在 Internet Explorer 8 中不起作用
【发布时间】:2014-06-12 16:02:04
【问题描述】:

我正在使用jQuery.getJSON 获取 Facebook 好友列表,但我没有得到它。它在 Firefox 和 Chrome 中运行良好,但在 Internet Explorer 8 中无法运行。

jQuery.getJSON("https://graph.facebook.com/me/friends?access_token="+aToken,
    function(data) {
        alert(data);
    }
);

在做了更多研究之后,我也尝试了这段代码:

jQuery.ajax({
    url:"https://graph.facebook.com/me/friends?access_token="+aToken,
    type: 'json',
    success: function(json) {
        alert(json);
    }
});

【问题讨论】:

  • 当你说“不工作”时——你会出错吗?如果您使用 IE 的开发者工具,您应该会看到某种 JavaScript 或 HTTP 错误
  • @beardtwizzle 我在开发者工具中没有收到任何错误

标签: jquery facebook getjson


【解决方案1】:

Internet Explorer 8 不支持 jQuery 使用的 XMLHttpRequest 对象中的 CORS。 Internet Explorer 8 默认使用XDomainRequest object,其中jQuery doesn't support

【讨论】:

  • 那么如何修复它是否有任何破解方法?
  • @Esailija 我以为 $.getJSON 只是在 GET 上做了一个 JSONP 请求,如果它不能使用 CORS?
  • @beardtwizzle,getJSON 只是 $.ajaxdataType: "json",它不是 JSONP,它根本不是 ajax 类型的请求。 JSONP 存在于 jQuery.ajax 中,但类型为 jsonp 或当字符串包含 "callback=?" 时为 getJSON。操作中的 facebook 图 url 无论如何都不会发送 JSONP 响应。
  • 啊是的...这是我在想的后半部分(即当您附加回调查询字符串时)
  • @beardtwizzle,是的,正是这种愚蠢的重载让我每天都对 jQuery 感到愤怒 =)
【解决方案2】:

试试这个来处理错误:

jQuery.getJSON("https://graph.facebook.com/me/friends?access_token=" + aToken, 
    function(data) {
        alert(data);
    }
)
.error(function(jqXHR, textStatus, errorThrown) { alert(errorThrown); });

并在您的代码中尝试这个 hack(根据下面的评论)

jQuery.support.cors = true;

【讨论】:

  • 试试这个技巧:把 jQuery.support.cors = true;在您的代码中。
  • @Nathan - 为清楚起见,实际答案是否在代码中添加了“jQuery.support.cors”?
  • 我在 IE8 中与 Jquery 1.7.2 有相同的错误,得到“访问被拒绝”但添加 jQuery.support.cors = true;没有帮助。难道我做错了什么?该代码在 IE10+ 中完美运行
  • @pomarc,这段代码只显示你收到什么样的错误,它将帮助你解决真正的问题。
【解决方案3】:

我在这里使用 Jason Moon 脚本完全解决了这个问题

https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest/blob/master/jQuery.XDomainRequest.js

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    相关资源
    最近更新 更多