jQuery.getJSON()在IE9及以下版本无法正常工作

时间:2013-02-25 07:54:15

标签: jquery ajax youtube-api

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版本上测试过仍然没有运气,帮助!

3 个答案:

答案 0 :(得分:3)

试试这个hack,它应该使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/

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

请像这样使用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'
  });