AJAX请求的问题

时间:2010-10-28 10:04:40

标签: ajax servlets

我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时,当我尝试第二次请求未发送时,而是获得之前的响应我之前得到的

1 个答案:

答案 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()

我真的不喜欢这个解决方案,但它可以帮助您了解问题是否与缓存有关。