该Response.Redirect
命令只不过是指示浏览器移动到其他页面。该命令首先是浏览器的标题指令。还有一个javascript小脚本写在页面上,以防标题失败。
现在,当您使用 Ajax(无论是其处理程序还是页面)进行调用时,结果返回到页面但在 ajax 缓冲区内,重定向标头被“吃掉”,而不是转到浏览器本身来运行它们。所以不能通过ajax调用直接完成重定向。
您应该做的是向您的 ajax 调用返回一个信号,并查看该信号/标志并使用 javascript 调用进行重定向window.location.replace("redirectPage.aspx")
例如,类似:
$.ajax({
url: "action.ashx",
type: "GET",
dataType: 'json',
success: function(data)
{
if(data.NeedRedirect)
window.location.replace("WhereToMove.aspx");
},
error: function(responseText, textStatus, XMLHttpRequest)
{
window.location.replace("WhereToMove.aspx");
}
});