关于javascript:xmlHttpResponse对象没有在IE7中返回正确的responseText

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选项
选择浏览器历史下的设置
在"检查存储页面的更新版本:"下选择"每次访问网页时"
保存设置。

希望它会帮助像我这样的其他人。