在页面加载时,我提出了两个AJAX请求:一个用于从Youtube频道提取最新视频,另一个用于从博客提取最新帖子。两个脚本都能正常工作多个AJAX请求冻结浏览器
无论出于何种原因,我无法在任何浏览器(Chrome,Firefox,Safari和Opera)中对其进行测试。请求是否太大?我在使用Chrome时遇到了CORS支持方面的问题(至少这是我认为正在发生的事情),所以博客请求不在那里工作,并完全抵消了视频请求(它不起作用)。
这是我得到的JavaScript开发控制台在Chrome中的错误:
的XMLHttpRequest无法加载http://devingraham.blogspot.com/rss.xml。 Access-Control-Allow-Origin不允许Origin null。
如果我改变...
var tmp = $(this).find("content:first").text();
...只是觉得 “标题:第一”,相反,它呈现细微的Safari不结冰。如果我将它保存在内容中并加载页面,我可以很好地看到帖子加载,但是页面冻结并且不会加载视频。所以也许它太多了?我知道一个事实,即我正在拉的帖子是相当长的,但它会引起任何问题似乎很愚蠢。那么你有什么想法吗?
这里的脚本:
<script type="text/javascript" charset="utf-8">
$(function() {
$.ajax({
type: "GET",
url: "http://gdata.youtube.com/feeds/base/users/devinsupertramp/uploads?orderby=updated&alt=rss&client=ytapi-youtube-rss-redirect&v=2",
dataType: "xml",
success: parseVideo
});
$.ajax({
type: "GET",
url: "http://devingraham.blogspot.com/rss.xml",
dataType: "xml",
success: parseBlog
});
});
function parseVideo(xml) {
$(xml).find("item:first").each(
function() {
var tmp = $(this).find("link:first").text();
tmp = tmp.replace("http://www.youtube.com/watch?v=", "");
tmp = tmp.replace("&feature=youtube_gdata", "");
tmp2 = "http://www.youtube.com/embed/" + tmp + "?autoplay=1&controls=0&rel=0&showinfo=0&autohide=1";
var iframe = $("#ytplayer");
$(iframe).attr('src', tmp2);
}
);
}
function parseBlog(xml) {
$(xml).find("entry:first").each(
function() {
var tmp = $(this).find("content:first").text();
var post = $("#blog");
post.append(tmp);
}
);
}
</script>
打开Firebug,打开NET标签,并看看该请求/响应序列。这可能会给你一个线索。 –
我只能看到Origin的值为null。但我不确定这是什么意思。 – Jon
您是否知道有关AJAX请求的相同原始策略? http://www.w3.org/Security/wiki/Same_Origin_Policy –