2014-07-23 64 views
0

我重定向到主頁中2情景window.location的不與AJAX調用工作

  1. 當用戶點擊退出
  2. 會話過期...

註銷功能代碼...

$("#logoutLink").click(Logout); 
    function Logout() { 
     $.post("Logout", 
      { antiCSRF: '{{acsrf}}', 
      session_id: '{{session_id}}' 
     }); 
     alert("You are now securely logged out."); 
     window.location = './'; 
    } 

會話過期代碼

function checksession() { 

      $.post("CheckSession", 
        { antiCSRF : '{{acsrf}}', 
         session_id: '{{session_id}}' 
        },validateresult).fail(function() {alert("Session check failed")}) 

} 



function validateresult(result){ 
       if (result == "N"){ 
       valid_flag = "N" 
       alert("Your session has been timed-out. Please click OK to be redirected to the login page to start a new session."); 

       window.location = './'; 
       } 
       else { valid_flag = "Y"; 
       return valid_flag 
       } 
      } 

在第一種情況下,即;當我點擊退出按鈕頁面被重定向到主頁面沒有任何問題...

但在ajax調用期間執行的代碼不工作..ie; window.location的不工作..

不知道是什麼

+0

非常容易混淆你所問的內容。哪個Ajax不起作用?有兩個ajax,兩個函數都有一個重定向。 –

+0

@Hanlet:兩者都是ajax調用,但在第二種情況下,我使用單獨的函數調用來處理響應。第一種情況正常,但在第二種情況下,重定向不起作用。 – user1050619

回答

0

AJAX調用之間的差別是異步的。你應該在$.post()完成後執行的回調函數中顯示警報()並執行重定向:

$("#logoutLink").click(Logout); 


function Logout() { 
    $.post("Logout", {antiCSRF: '{{acsrf}}', session_id: '{{session_id}}'}, function() { 
     alert("You are now securely logged out."); 
     window.location = './'; 
    }); 
}