【问题标题】:jQuery.getJSON() doesn't work properly in IE9 and belowjQuery.getJSON() 在 IE9 及以下版本无法正常工作
【发布时间】:2013-02-25 07:54:14
【问题描述】:
var video_id='VA770wpLX-Q';

$.getJSON('http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',function(data,status,xhr){
    alert(data.data.title);
});

我在 ie9 及以下版本中使用 getJSON() 时遇到问题,请求已完成但功能未运行,它可以在除 IE 之外的所有其他浏览器上运行,已经在不同的 jquery 版本上进行了测试,但仍然没有运气,求助!

【问题讨论】:

    标签: jquery ajax youtube-api


    【解决方案1】:

    试试这个技巧,在这种情况下它应该可以让 IE 处理跨域请求:

    $.support.cors = true;
    $.getJSON('http://gdata.youtube.com/feeds/api/videos/' + video_id + '?v=2&alt=jsonc', function (data) {
        console.log(data.data.title);
    });
    

    为我工作http://jsbin.com/ariyec/1/

    【讨论】:

    • hmmm 对不起,我在 ie8 中测试过,它不起作用...我想知道我是否不应该使用 getJSON 方法,我不熟悉 ajax,有什么建议吗?
    【解决方案2】:

    经过几个小时的谷歌搜索,我找到了一个简单有效的解决方案!

    jQuery.getJSON not working properly in IE8 with gdata json-c. Why?

    只需将&callback=? 添加到您的网址字符串的末尾即可。

    【讨论】:

      【解决方案3】:

      请像这样使用jsonp:

        var video_id='VA770wpLX-Q';
      
        $.ajax({
          url: 'http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',
          success: function(data,status,xhr){alert(data.data.title);},
               dataType: 'jsonp'
        });
      

      【讨论】:

        猜你喜欢
        • 2014-02-18
        • 2012-07-11
        • 2013-01-16
        • 1970-01-01
        • 2015-05-06
        • 2011-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多