我hava创建了用于获取数据的ajax XMLHttpRequest请求,
这是代码
var XMLHttpReq;
function createXMLHttpRequest(){ if(window.XMLHttpRequest){ XMLHttpReq = new XMLHttpRequest(); } else { if(window.ActiveXObject){ 尝试{ 如果(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时,当我尝试第二次请求未发送时,而是获得之前的响应我之前得到的
答案 0 :(得分: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()
我真的不喜欢这个解决方案,但它可以帮助您了解问题是否与缓存有关。