2010-10-28 152 views
0

我HAVA創建的AJAX的XMLHttpRequest請求dyanmically獲取數據,問題AJAX請求

這裏是代碼

var XMLHttpReq; 

功能createXMLHttpRequest(){ 如果(window.XMLHttpRequest){ XMLHttpReq = new XMLHttpRequest();如果(window.ActiveXObject){ if(XMLHttpReq == null) XMLHttpReq = new ActiveXObject(「Msxml2.XMLHTTP」);

 } 
     catch (e) { 
      try { 
       if(XMLHttpReq==null) 
       XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (e) { 
      } 
     } 
    } 
} 

}

這是發送請求

function personList(person) { 

createXMLHttpRequest(); 
var url="query?option=person&userName="+person.innerHTML; 
XMLHttpReq.open("GET", url, true); 
XMLHttpReq.onreadystatechange =personListResponse; 
XMLHttpReq.send(null); 
} 

function personListResponse() { 
if (XMLHttpReq.readyState == 4) { 
    if (XMLHttpReq.status == 200) { 
    var xml=XMLHttpReq.responseXML; 
    } 
} 

}

請求被髮送到servlet僅對於第一時間的方法,當我嘗試爲第二個請求沒有被髮送,而是得到了先前的迴應我之前得到的

回答

1

我想它是緩存。 嘗試請求之前添加此:

XMLHttpReq.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
XMLHttpReq.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); 
XMLHttpReq.setRequestHeader("Pragma", "no-cache"); 

如果它不工作,嘗試添加一個額外的參數,以您的網址,使得它獨特的,因此,不緩存。

var url="query?option=person&userName="+person.innerHTML + "&d=" + new Date().getTime() 

我真的不喜歡這樣的解決方案,但它可以幫助你知道,如果問題涉及到緩存。

+0

我已經添加了以下一行代碼response.setHeader(「Cache-Control」,「no-cache」)它爲我工作 – Lalchand 2010-10-28 10:24:07