我正在使用Ajax从服务器检索数据,如下所示基于一些ID来执行自动建议功能.但是,当我提交表单并更新数据库时,自动建议字段假设不应再包含此ID的任何内容,但它仍将从其缓存中检索数据.有谁知道如何清除缓存并使Ajax发送请求每次按下按钮从服务器获取最新数据?请帮助我真的坚持这整周,无法找到解决方案.
例如:当ID字段为00001时,自动建议字段为1,2,3.在我提交表单并更新数据库后,当我再次搜索00001时,它不应包含任何内容,但它仍然将数据缓存为1,2,3在建议字段中...
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var data=xmlhttp.responseText;
alert(data);
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
Run Code Online (Sandbox Code Playgroud)
我曾经遇到过这个问题.这可能是您可以在服务器设置中修复的内容.服务器所做的是获取服务器请求,构建答案,并且当再次完成相同的请求时,它会发送它之前构建的相同响应.
为了轻松避免这个问题,我添加了一个额外的请求参数(一个UID).所以:
xmlhttp.open("GET","gethint.php?q="+str+**"?something"=RANDOMGUID**,true);
Run Code Online (Sandbox Code Playgroud)
这样你总是有一个独特的要求.
适用于 IE8
xmlHttp.open("GET", URL, true);
xmlHttp.setRequestHeader("Cache-Control", "no-cache");
xmlHttp.setRequestHeader("Pragma", "no-cache");
xmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10714 次 |
| 最近记录: |