Ajax异步处理跳转不了

这是第一个jsp页面的代码,可以正常进入AjaxServlet

var xmlHttpRequest=null;
 //页面加载
    window.onload=function(){
        //获取按钮对象
        var but=document.getElementById("login");
        but.onclick=function(){
            //处理ajax
            //对浏览器判断
            if (window.ActiveXOject) {
                //IE
                xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP);
            }else{
                xmlHttpRequest=new XMLHttpRequest();
            }
            //获取内容
            var loginname=document.getElementById("loginname").value;
            var upassword=document.getElementById("upassword").value;
            var inputRand=document.getElementById("inputRand").value;
            //打开链接
            xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true);
            //回调函数
            xmlHttpRequest.onreadystatechange=AjaxCallBack;
            //发送
            xmlHttpRequest.send(null);
        }
    };

    //创建回调函数
    function AjaxCallBack(){
        if (xmlHttpRequest.readyState==4) {
            if (xmlHttpRequest.status==200) {
                //读取后台回传的数据
                var content=xmlHttpRequest.responseText;
                var divObject=document.getElementById("resultdiv");
                divObject.innerHTML=content;
                if (content=="登录成功") {
                    window.location.href="index.jsp";
                }
            }
        }
    }

这是第二个jsp页面的代码,执行之后没有进入后台AjaxServlet,路径是没有错的
而且不光是进不了AjaxServlet,把URL改成随便的一个JSP页面或者Servlet也跳不过去

var xmlHttpRequest=null;
 //页面加载
window.onload=function(){
    //获取按钮对象
    var but=document.getElementById("OK");
    but.onclick=function(){
        //处理ajax
        //对浏览器判断
    if (window.ActiveXOject) {
        //IE
        xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP);
    }else{
        xmlHttpRequest=new XMLHttpRequest();
    }
        //获取内容
        var oldpassword=document.getElementById("oldpassword").value;
        var newpassword=document.getElementById("newpassword").value;
        var renewpassword=document.getElementById("renewpassword").value;
        //打开链接
        //alert("执行到这里");
        xmlHttpRequest.open("get","../../AjaxServlet?oldpassword="+oldpassword+"&newpassword="+newpassword+"&renewpassword="+renewpassword+"&type=2",true);
        //回调函数
        xmlHttpRequest.onreadystatechange=AjaxCallBack;
        //发送
        xmlHttpRequest.send(null);
    }
};
//创建回调函数
function AjaxCallBack(){
    if (xmlHttpRequest.readyState==4) {
    if (xmlHttpRequest.status==200) {
        //读取后台回传的数据
        var content=xmlHttpRequest.responseText;
        var divObject=document.getElementById("resultdiv");
        divObject.innerHTML=content;

    }
}
}

我是初学者,如果是写法不对,想请教一下怎样在一个项目里面的多个JSP页面实现异步处理

if (xmlHttpRequest.status==200) {}
和if (xmlHttpRequest.readyState==4) {}
这两个判断写反了,望采纳!

你还没有发送请求就回调函数了,这写法的顺序不对,应该是首先与服务器获得连接,然后再发送请求,然后获取响应结果。还有路径那里拼接字符串容易出错,个人建议使用
c标签。类似 xmlhttprequest.open("GET","",true);这样的写法。路径不容易出错。给你个例子,你可以参考一下

//创建XMLHttpRequest function createXMLHttpRequest(){ try{ return new XMLHttpRequest();//适用于大多数浏览器,以及ie7以上的版本 }catch(e){ try{ //适用于ie6 return new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ //适用于ie5或者更早的版本 return new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){//其他情况,一般不会到这一步 alert("亲,请问您这是用的什么浏览器?"); throw e; } } } } window.onload=function(){//文档加载完后执行 var btn=document.getElementById("btn"); btn.onclick=function(){//给按钮添加方法 /*ajax的四部操作,得到服务器的相应之后,把响应结果显示到h1中 1:创建XMLHttpRequest对象 2:调用open方法,打开与服务器的连接 3:调用send方法发送请求 4:为XMLHttpRequest对象指定onreadystatechange事件函数,这个函数会在XMLHttpRequest */ //1:获得对象 var xmlhttprequest=new createXMLHttpRequest(); //2:与服务器获得连接 xmlhttprequest.open("GET","<c:url value='/AjaxServlet1'/>",true); //3:发送请求 xmlhttprequest.send(null);//此处必须得用null否则火狐浏览器会出现无法请求的问题 //4:获得请求 xmlhttprequest.onreadystatechange=function(){//当xmlhttprequest对象发生变化时 //双重判断,如果xmlhttp状态码为4(服务器响应结束),且服务器响应码为200表示成功 if(xmlhttprequest.readyState==4&&xmlhttprequest.status==200){ //获取服务器响应结果 var text=xmlhttprequest.responseText; var h1=document.getElementById("h1"); h1.innerHTML=text; } }; }; };

xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true);