xmlHttpResponse object not returning proper responseText in IE7
在我的应用程序中为了避免重复的组名我试图通过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);}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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
我通过修改IE设置中的几个选项完成了这项工作。
即使我关闭浏览器并再次打开IE浏览器,我的响应也会在浏览器中缓存。
所以,我做的是,转到工具 - > Internet选项
选择浏览器历史下的设置
在"检查存储页面的更新版本:"下选择"每次访问网页时"
保存设置。
希望它会帮助像我这样的其他人。