请考虑这一点:在页面AI上有一个链接,当JS关闭时,您可以进入页面B,但是当JS打开时,我想用页面B中的内容替换当前页面上的内容。jQuery AJAX重定向问题
页面A和页面B实际上是相同的脚本,它能够告知常规AJAX调用并适当地提供内容。一切工作正常,只要没有涉及重定向。
但是,有时会出现301重定向,而且似乎正在发生的事情是客户端浏览器发出第二个请求,并返回200 OK。只有第二个请求在没有X-Requested-With头的情况下发送,因此我不能告诉脚本是否来自AJAX,并且会发送一个完整的页面而不是仅仅内容。
我已经尝试在我的错误,成功,和完整的处理程序中检查301状态代码,但他们都没有工作。这似乎是幕后操纵301。
任何人都可以帮助我吗?
的jQuery 1.4,PHP 5
编辑:人们请求的代码这一点,我不认为是必要的,但这里有云:
// hook up menu ajax loading
$('#menu a').live("click", function(){
// update menu highlight
if($(this).parents('#menu').size() > 0){
$("#menu>li").removeClass("current_page_item");
$(this).parent().addClass("current_page_item");
}
// get the URL where we will be retrieving content from
var url = $(this).attr('href');
window.location.hash = hash = url;
$.ajax({
type: "GET",
url: url,
success: function(data){
// search for an ID that is only present if page is requested directly
if($(data).find('#maincontent').size() > 0){
data = $(data).find('#maincontent .content-slide *').get();
}
// the rest is just animating the content into view
$("#scroller").html(data);
$('.content-slide').each(setHeight);
$('.content-slide').animate({
left: "0px"
}, 1000, 'easeOutQuart',
function(){
$('#home').css("left", "-760px").html(data);
$('#scroller').css("left", "-760px");
$('.content-slide').each(setHeight);
}
);
}
});
return false;
});
您可以将页面B中的内容放在'
谢谢,但这不是一个选项,几乎网页上的每个链接都将被AJAX处理,一个将下载页面的完整内容。 – mirosval
你能提供页面A和页面B的结构吗?你希望页面B内容出现在页面A中,还是替换页面A中的所有当前内容?为什么用户必须首先进入页面A,这有什么理由? –