【问题标题】:problem with AJAX requestAJAX 请求的问题
【发布时间】:2011-05-01 19:15:18
【问题描述】:

我创建了用于动态获取数据的 ajax XMLHttpRequest 请求,

这里是代码

var XMLHttpReq;

函数 createXMLHttpRequest() { 如果(window.XMLHttpRequest){ XMLHttpReq = 新的 XMLHttpRequest(); } 别的 { 如果(窗口。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,当我第二次尝试时,请求没有发送,而是得到了之前得到的响应

【问题讨论】:

    标签: ajax servlets


    【解决方案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");
    

    如果不起作用,请尝试向您的 url 添加一个附加参数,使其唯一,因此不缓存。

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

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

    【讨论】:

    • 我添加了以下代码行 response.setHeader("Cache-Control", "no-cache") 它对我有用
    猜你喜欢
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2011-12-24
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多