$.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
下面是我用来检索 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