2010-03-14 63 views
0

当我的会员注册表格正确地填写并提交时,服务器响应重定向链接。但我的阿贾克斯不重定向网站。我没有收到任何错误,我的错误在哪里?ajax响应重定向问题

<script type="text/javascript"> 
$(document).ready(function() { 
    $("[name='submit']").click(function() { 
    $.ajax({ 
    type: "POST", 
    data: $(".form-signup").serialize(), 
    url: "http://www.refinethetaste.com/FLPM/content/myaccount/signup.cs.asp?Process=Add2Member", 
    success: function(output) { 
    if (output.Redirect) { 
     window.location.href = output.Redirect; 
    } 
    else { 
    $('.sysMsg').html(output); 
    } 
    }, 
    error: function(output) { 
    $('.sysMsg').html(output); 
    } 
    }); 
    }); 
}); 
</script> 

ASP代码:

If Session("LastVisitedURL") <> "" Then 
Response.Redirect Session("LastVisitedURL") 
Else 
Response.Redirect "?Section=myaccount&SubSection=myaccount" 
End If 
+0

你为什么不尝试调试你的代码?它看起来像一个简单的'alert(output.Redirect);'在第一行成功处理程序会帮助你很多:没有警报意味着没有成功,空警报意味着什么都没有返回,警告与正确的URL意味着在窗口中的一些问题.location.href = output.Redirect;'。 – Li0liQ 2010-03-14 23:43:03

+0

对不起,我对此不以为然。应该被重定向的网页被加载到.sysMsg div中。 – zurna 2010-03-14 23:45:12

+0

阅读此问题:http://stackoverflow.com/questions/199099/how-to-manage-a-redirect-request-after-a-jquery-ajax-call/1534662#1534662 - 存在重定向响应的一般问题到ajax请求。答案为这个问题提供了一些很好的背景。 – Steg 2010-03-14 23:46:38

回答

0

就试试这个:

if (output.Redirect) { 
     alert(output.Redirect); 
     window.location.href = output.Redirect; 
    } 

检查什么来从服务器返回。

0

您需要使用某种调试器(Firefox中的Firebug或WebKit网络检查),并在停止程序:

if (output.Redirect) { 
在成功回调

,并在

$('.sysMsg').html(output); 

错误回调。

然后你可以检查内容,看看它们是什么。如果不知道返回的对象中有什么(如果有的话),那么没有人可以调试它。

每个人都需要停止使用alert和写入页面的一部分作为错误调试,并直接在调试器中工作。否则,你的输出也会被解析的内容解析。你永远不知道错误是在输出还是在试图将其打印到字符串的东西中。

我建议使用两种调试器,因为它们工作方式不同,各有优缺点。