使用Google Chrome的JavaScript控制台收到“资源解释为脚本但通过MIME类型application/json传输”的错误消息。使用Youtube的JavaScript API“将资源解释为脚本,但使用MIME类型application/json进行传输”
我目前正在运行的我的本地计算机上的下面的代码:
var URL = "";
var YOUTUBE_ROOT = "http://gdata.youtube.com/feeds/api/videos?alt=jsonc&v=2";
var start_index = "&start-index=1";
var callback = "&jsonp=?"
function searchYouTube()
{
var q = encodeURIComponent(jQuery("#query").val());
var query = "&q="+q;
URL = YOUTUBE_ROOT+start_index+query+callback;
alert(URL);
$.getJSON(URL, function(data) {
$.each(data.items, function(i, item) {
alert(item);
});
});
}
jQuery(document).ready(function() {
jQuery("#searchYouTube").click(searchYouTube);
});
我想知道是什么原因造成的错误?
我试过用'callback =?' ,'jsoncallback =?'为回调,但所有导致 相同的错误消息。
我可以知道我该如何解决这个问题?
最好的问候。
哇感谢!好像我仍然有很多要学习JavaScript和JQuery。数据现在正在显示。 – DjangoRocks 2011-03-08 13:34:35
当您需要访问跨域数据时使用JSONP。基本上这只是一个窍门:JavaScript页面中插入了JavaScript脚本,并且响应中嵌入了JavaScript回调。 – jujule 2011-03-08 14:28:18
这并不能解决所提到的错误('资源解释'等等),至少不适合我,以及仍然使用'application/json'时。它只在用作'text/javascript'时消失,它没有任何明显的副作用。 – kasimir 2012-03-22 13:35:09