2014-01-09 22 views
-2
function submitLogin(){ 
     var username = document.getElementById('username').value; 
     var password = document.getElementById('password').value; 
     var testlabel = document.getElementById('testlabel').value; 
     var postStr = "username=" + username + "&password=" + password + "&testlabel=" + testlabel; 

     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest(); 
     } else { 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       document.getElementById('mainPage').innerHTML = xmlhttp.responseText;//ATTENTION1 
      } else { 
       document.getElementById('mainPage').innerHTML = "Logining......";//ATTENTION2 
      } 
     } 
     xmlhttp.open("POST", "loginto.php", true); 
     xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
     xmlhttp.send(postStr); 

} 

這些是我的代碼。 如果我將「mainPage」更改爲// ATTENTION2中的其他內容,頁面將自動發送一個「GET」方法,但是如果我仍然在那裏使用「mainPage」,則不會有任何問題。經典Ajax在ajax請求期間被取消

但是,如果我將「mainPage」更改爲// ATTENTION1中的其他內容,則post方法沒有問題,可以正確顯示響應內容。

那麼,有沒有解決方案?謝謝!

回答

0

「其他」是什麼意思?你需要在你的頁面中有一個元素的id,其中來自ajax響應的內容將被渲染。

例如,如果你有一個

<div id="myID"></div> 

某處頁面,並在// ATTENTION1爲「身份識別碼」改變「炫魅」,然後從Ajax請求的響應將被放置在該分區。

您在// ATTENTION2中所做的更改是針對中間狀態,因爲它位於「其他」上,因此不會影響ajax請求完成時發生的情況。