2009-03-03 72 views
0

我有這個功能,它利用jQuery的崗位功能來發送一個Ajax請求我註銷處理程序,它破壞了會議(由asp.net設置),並重定向到登錄頁面:爲什麼我的網頁即使沒有出錯也不會重定向?

<script type="text/javascript"> 
    //<![CDATA[ 
    function doLogout() { 
     var conf = false; 
     conf = confirm("Really log out?"); 
     if (conf === true) { 
      $.post("logout.ashx"); 
     } 
    } 
    //]]> 
</script> 

到目前爲止,註銷鏈接功能罰款:用戶點擊它時,確認對話框彈出,如果他們點擊是的,它加載了註銷處理程序:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
    With context 
     If .Session IsNot Nothing Then 
      context.Session.Clear() 
      context.Session.Abandon() 
     End If 
     .Server.Transfer("default.aspx", False) 
    End With 
End Sub 

我一直在使用Response.Redirect也試過了,沒有什麼不同的反應。

我通過跟蹤證明一切正常,運行正常。沒有JavaScript或asp.net錯誤。唯一的問題是瀏覽器中的頁面不會改變。

任何想法?

回答

1

當您發佈ajax請求時,您可以在服務器上重定向所有您想要的,但您所做的只是確定哪個頁面最終響應該ajax請求。如果您希望重定向整個頁面,則需要從整個頁面發佈,或者構建處理響應的JavaScript,以瞭解何時需要重定向並在那裏執行響應。

0

問題是服務器的回調是一個異步的JavaScript調用,而不是頁面回發。 如果您希望在瀏覽器中更改頁面,則在呼叫您的註銷功能後,您還必須在javascript函數中執行此操作。

+0

所以調用window.location([url])? – Anders 2009-03-03 14:19:57

相關問題