在我的应用程序中为了避免重复的组名我试图通过AJAX调用验证用户输入的值。但我没有收到预期的responseText但我从缓存接收responseText。 JS档案: 尝试{ if(window.ActiveXObject)// IE var xhr = new ActiveXObject(“Microsoft.XMLHTTP”); else if(window.XMLHttpRequest)// other var xhr = new XMLHttpRequest(); 其他 alert(“您的浏览器不支持AJAX”); } catch(e){alert(“creting中的错误xmlhttpresponse:”+ e);}
escName= document.forms(0).txtEscalationName.value;
escId = document.forms(0).hidGroupId.value;
urlParam = "escName=" +escName +"&escCode=" +escId;
alert(".."+urlParam);
xhr.open("GET", "/myapp/jsp/main/escalationNameCheck.jsp?"+urlParam+"&ran="+Math.random() ,true);
xhr.setRequestHeader("Cache-Control","no-cache");
xhr.setRequestHeader("Pragma","no-cache");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4)
{
if (xhr.status == 200)
{
if (xhr.responseText != null)
{
alert(document.getElementById("escalationNameValidate"));
try{
var populate = document.getElementById("escalationNameValidate");
populate.innerHTML = xhr.responseText;
}catch(e){
alert("ERROR!...."+e);
}
}
else
{
alert("Failed to receive JSP file from the server - file not found.");
return false;
}
}
else
alert("Error code " + xhr.status + " received: " + xhr.statusText);
} else
alert("not ready");
}
xhr.send(null);
在此处提及:responseText - XMLHttpRequest
我试过提到像下面这样的事件,但它给出了异常,说目标是null或不是对象。
xhr.onreadystatechange = function(event){
var xhr = event.target;
if(xhr.readyState == 4)
{alert(“first if”);
if(xhr.status == 200)
{alert(“second if”);
if(xhr.responseText!= null)
{alert(“third if”+ xhr.responseText);
alert(document.getElementById("escalationNameValidate"));
try{
var populate = document.getElementById("escalationNameValidate");
alert("11");
alert("pop.."+populate.innerHTML);
populate.innerHTML = xhr.responseText;
}catch(e){
alert("ERROR!.xhr..."+e);
}
}
else
{
alert("Failed to receive JSP file from the server - file not found.");
return false;
}
alert("escNameDuplicate"+document.getElementById("escNameDuplicate"));
}
else
alert("Error code " + xhr.status + " received: " + xhr.statusText);
} else
alert("not ready");
}
所以我试过1.在requestHeader中将cache-control作为no-cache 2.在定义xhr时使用var xhr将xhr作为局部变量。 3.还将事件实例指向onreadystatechange函数。 浏览器版本:IE7
请帮助。 问候, Nidhya
答案 0 :(得分:0)
我通过修改IE设置中的几个选项完成了这项工作。 即使我关闭浏览器并再次打开IE浏览器,我的响应也会在浏览器中缓存。 所以,我做的是,去工具 - >互联网选项 选择浏览器历史下的设置 在“检查存储页面的更新版本:”下选择“每次访问网页时” 保存设置。
希望它能帮助像我这样的其他人。