在頁面加載時,我提出了兩個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 –