2016-09-26 86 views
0

我寫了一個簡單的登錄頁面,向後端發送一個Ajax請求。但是,我無法在成功登錄時重定向頁面。重定向工作15次,不知道爲什麼會發生這種情況。我試過所有不同的重定向可能性,比如window.location.href,替換,重載和看到相同的行爲。HTML頁面重定向不能在裏面工作javascript

在這裏的任何幫助將是偉大的。

function loginNow(form) { 

     var uname, passwd; 
     if ((uname = document.getElementById("username").value) === "") 
      alert("Username cannot be empty!"); 

     if ((passwd = CryptoJS.SHA1(document.getElementById("password").value).toString()) === "") 
      alert("Please provide a password!"); 

     uname = uname.toLowerCase(); 
     var xmlObj; 
     // For all known browsers 
     if (window.XMLHttpRequest) { 
      xmlObj = new XMLHttpRequest(); 
     } 

     if (xmlObj.overrideMimeType) { 
      xmlObj.overrideMimeType('text/xml'); 
     } 
     xmlObj.open("GET","../jsp/authenticate.jsp?username="+uname+"&password="+passwd+"",true); 
     xmlObj.send(); 

     xmlObj.onreadystatechange = function() 
     { 
      if (xmlObj.readyState == 4) 
      { 
       var newData = xmlObj.responseText; 
       var authData = JSON.parse(newData); 
       var auth = authData.auth; 

       if (auth == 0) { 
        **window.location = "http://www.google.com";** 
       } else { 
        alert ("Login failed"); 
       } 
      } 
     }; 
    } 
+0

附加的console.log,看看是否有線路達到 –

+0

添加的console.log(AUTH);在你的var auth = authData.auth之後;看看服務器發回了什麼..這可能是一個服務器端錯誤..也爲什麼你有**(星號)圍繞window.location? – rubberchicken

+0

它到達線並且auth爲零。服務器的響應很好。 window.location行被執行,但頁面重定向不起作用。它每15次工作一次。星號用粗體突出顯示 – user3616977

回答

0

答案就是HTML腳本的一個簡單變化。 在html調用中添加return函數()。如果你在chrome中有回調函數,這是非常重要的。 window.location的前

<button onclick="return loginNow(this.form);">Login</button>