2010-03-14 97 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和寫入頁面的一部分作爲錯誤調試,並直接在調試器中工作。否則,你的輸出也會被解析的內容解析。你永遠不知道錯誤是在輸出還是在試圖將其打印到字符串的東西中。

我建議使用兩種調試器,因爲它們工作方式不同,各有優缺點。