下面是我使用Google API检索YouTube视频的代码:
$.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确实支持跨源资源共享(这是该请求工作所需的),但它们不支持使用通常的XMLHttpRequest
对象;相反,您必须使用XDomainRequest
对象。jQuery没有为您解决这个特定的跨浏览器问题,所以$.get
不能在IE8和IE9上使用CORS。
如果你搜索,有一个jQuery的补丁或插件可以让它与IE8或IE9一起工作。
IE10及以上版本正确支持CORS(我不知道当页面以严重误名的"兼容性"模式显示时,这是否属实;在tra中,默认情况下的网页是,所以如果您在IE10中进行本地测试并遇到问题,可能是告诉IE不要以兼容性模式显示intranet页面)。X-UA-Compatible
元报头也可以在这里发挥作用。(当使用任何高级功能时,我倾向于在head
的顶部附近包含<meta http-equiv="X-UA-Compatible" content="IE=edge">
。)
IE7及以下版本根本不支持CORS。