$.get 使用 google API 检索 YouTube 视频,在 IE 中不返回任何内容

$.get to retrieve YouTube video using google API returning nothing in IE

下面是我用来检索 YouTube 视频的代码 Google API:

                   $.get(
                   "https://www.googleapis.com/youtube/v3/search",{
                   part : 'snippet', 
                   q:searchKey,
                   maxResults:3,
                   type:'video',
                   channelId:'Ufdefew3E0iGDp-5OmR8Ddww',
                   order:'date',
                   key: apiKey},
                   function(data) {                 
                      $.each( data.items, function( i, item ) {
                     .............
                          }
                      });

此代码在我的任何 IE 浏览器中均未返回任何内容,但我发现它在 chrome 和 FF 中有效。有人可以帮我吗?提前致谢。

如果您使用的是 IE8 或 IE9,那是因为尽管 IE8 和 IE9 支持 Cross Origin Resource Sharing(您需要该请求才能正常工作),但它们不支持' 使用通常的 XMLHttpRequest object 支持它;相反,您必须使用 XDomainRequest object。 jQuery 没有为您解决这个特定的 cross-browser 问题,因此 $.get 无法在 IE8 和 IE9 上使用 CORS。

如果您搜索,可以找到适用于 jQuery 的补丁或插件,可以在 IE8 或 IE9 上运行。

IE10 及更高版本正确支持 CORS(我不知道当页面以 massively-misnamed "compatibility" 模式显示时是否如此;在tranet 页面 默认为 ,因此如果您在 IE10 中进行本地测试并遇到问题,可能就是这样 - 告诉 IE 不要在兼容模式下显示 Intranet 页面)。 X-UA-Compatible 元 header 也可能在这里发挥作用。 (在使用任何高级功能时,我倾向于在 head 的顶部附近包含 <meta http-equiv="X-UA-Compatible" content="IE=edge">。)

IE7及以下版本完全不支持CORS