2010-10-28 3 views
0

i Hava a créé la demande ajax XMLHttpRequest pour obtenir les données dyanmically,avec demande AJAX

voici le code

var XMLHttpReq; 

fonction createXMLHttpRequest() { if (window.XMLHttpRequest) { XMLHttpReq = new XMLHttpRequest(); } else { if (window.ActiveXObject) {try { if (XMLHttpReq == null) XMLHttpReq = new ActiveXObject ("Msxml2.XMLHTTP");

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

}

c'est la méthode qui envoie la demande

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; 
    } 
} 

}

la demande est envoyée au servlet que pour la première fois, lorsque je tente de la en second lieu la demande n'est pas envoyée, à la place je reçois la réponse précédente ce que j'ai eu plus tôt

Répondre

1

Je suppose que c'est le cache. Essayez d'ajouter ceci avant la demande:

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"); 

Si cela ne fonctionne pas, essayez d'ajouter un paramètre supplémentaire à votre URL, ce qui rend unique et donc pas mise en cache. Je n'aime vraiment pas cette solution, mais elle vous aide à savoir si le problème est lié à la mémoire cache.

+0

J'ai ajouté la ligne suivante de code response.setHeader ("Cache-Control", "no-cache") cela a fonctionné pour moi – Lalchand