jQuery.getJSON 访问被拒绝

3


我正在编写一个简单的书签脚本,它在YouTube页面上运行,并从YouTube API获取有关当前播放视频的一些数据。
这个书签脚本可以在Chrome和Firefox上运行,但是在IE(目前只测试过IE9)上,下面的代码会出现错误:

jQuery.support.cors = true;
$.getJSON('https://gdata.youtube.com/feeds/api/videos/' + vid + '?v=2&alt=json',YoutubeBookmarklet.handle_gdata_obj)
.error(function(xhr, ajaxOptions, thrownError) {
    console.log(thrownError);
});

我遇到的第一个错误是 "没有传输",通过 stackoverflow 的帮助,我发现我需要添加 jQuery.support.cors = true 以解决这个问题。但是添加之后又出现了另一个错误:"拒绝访问"。

我尝试使用 IE XDomainRequest,但是还是出现了同样的错误。
该怎么办?


Javascript 不允许跨域的 $.get 请求,可以参考 http://en.wikipedia.org/wiki/Same_origin_policy。 - Phil
嗨,Phil,我不认为你是对的。如果这是真的,那么我的代码就不能在Chrome或Firefox上运行。 - Yosi
2个回答

3

我使用JSONP修复了它,为此我在url的末尾添加了"&callback=?"。


0

我正在尝试直接从Github使用$.getScript加载它,但仍然出现错误。 - Yosi
这个黑客技巧已经失效了。我无法让它起作用。 - StanleyZheng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接