window.location不能与ajax调用一起使用

时间:2014-07-23 21:35:35

标签: javascript jquery ajax

我在2个场景中重定向到主页

  1. 用户点击退出时
  2. 会话到期......
  3. 退出功能代码......

     $("#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调用期间执行的代码不起作用。 window.location无效..

    不确定

    之间有什么区别

1 个答案:

答案 0 :(得分:0)

ajax调用是异步的。您应该显示alert()并在回调函数中执行重定向,该函数在$.post()完成后执行:

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


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