XMLHttpReq.readyState ==0老出这样的错!那位大哥知道的来看看!谢谢了! - Web 开发 / Ajax
我的js 脚本:
var XMLHttpReq;
  	//创建XMLHttpRequest对象        
function createXMLHttpRequest() {
     if (window.XMLHttpRequest) {alert("Mozila") //Mozilla 浏览器
         XMLHttpReq = new XMLHttpRequest();
         alert(XMLHttpReq);
     } else {
         if (window.ActiveXObject) {// IE浏览器
             try {
                 XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
             }
             catch (e) {
                 try {
                     XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
                 }
                 catch (e) {
                 }
             }
         }
     }
}
//发送请求函数
function loginRequest(url) {
     createXMLHttpRequest();
	XMLHttpReq.onreadystatechange = processLoginResponse();//指定响应函数
     XMLHttpReq.open("GET",url,true);
     XMLHttpReq.send();  // 发送请求
}
// 处理身份验证返回信息函数
function processLoginResponse() {
alert("process");
     	if (XMLHttpReq.readyState == 4) { // 判断对象状态
     	        	if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
             	var res=XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.nodeValue;             	
                 if (res==1){
                 	window.alert("用户名错误!");                 
                 }
                 else if (res==2){
                 	window.alert("密码错误!");                 
                 }
                 else if (res==0){
             		var name=XMLHttpReq.responseXML.getElementsByTagName("name")[0].firstChild.nodeValue;
                 	window.location = "index.jsp?name="+name;                 
                 }
             } else { //页面不正常
                 window.alert("您所请求的页面有异常。");
             }
         }if(XMLHttpReq.readyState ==0)
         {
         alert("????");
         }
     }
function userCheck() {alert("name");
		var name = document.loginForm.name.value;
	    var	psw = document.loginForm.pass.value;		
		if(name=="") {
			window.alert("用户名不能为空。");
			document.loginForm.name.focus();
			return false;
		}
		else{
			loginRequest("<%=request.getContextPath()%>/login?name=" + name + "&pass=" + psw );
		}
	}
*****************************************************************************************************
我是IE7的浏览器,它为什么给我生成一个Mozilla 浏览器的对象啊????
单独测试我的servlet没什么问题但用在loginRequest(url)这里请求的话,就不走我的servlet!
	XMLHttpReq.readyState ==0老出这样的错?????????
那位大哥懂得来看看!谢谢了!我找了一下午了,还没找出来!
------解决方案--------------------好象ie7是xmlhttprequest对象,
ie6-的才是activexobject
绑定状态处理函数不对
XMLHttpReq.onreadystatechange = processLoginResponse
();//指定响应函数  
==>
XMLHttpReq.onreadystatechange = processLoginResponse;
而且要注意一点,你的XMLHttpReq.
status要想返回200,必须通过iis/tomcat来访问,要不直接拖进浏览器返回的是0
------解决方案--------------------1楼的兄弟真是乐于助人啊!!!!!! 
初学者的导师啊!!!
讲解的如此详细,实在令人感动啊!!!!  向之学习!!!