JS方法: var xmlhttp;//必定注意是写在外面的全局变量,我调了一个上午才发现。 function verify(){ //使用dom方式获取文本框中的值 var userName=document.getElementById("userName").value; //如下5个步骤即完成ajax应用的5个关键步骤 //1. 建立XMLHttpRequest对象(最关键&复杂的一步) //须要针对IE和其余类型的浏览器创建这个对象的不一样方式写不一样代码 if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();//针对mozillar,firefox,opera,safari,ie7,ie8 //针对某些特定版本的mozillar浏览器的bug(主要是调用回调函数时会有问题)进行修正(这一步是保证脚本的健壮性) if(xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml"); } }else if(window.ActionXObject){ //(老师语)为何这个放在第二个if语句里呢? //(1)针对的对象范围太窄 //(2)自身的缺陷或者说原理已被一些人摸透了,有人利用ActionXObject干了很多坏事(?)因此会被一些有经验的用户直接禁掉 //针对ie6,ie5.5,ie5 //两个能够建立XMLHttpRequest对象的控件名称,保存在一个js数组中,排在前面的较新 varactivexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0; i<activexName.length; i++){ try{ xmlhttp=new ActionXObject(activexName[i]); break; }catch(e){ } } } //确认XMLHttpRequest对象建立成功(保证脚本的完整性,指开发的时候) if(!xmlhttp){ alert("XMLHttpRequest对象建立视频!!"); return; }else{ alert(xmlhttp); } //2. 注册回调函数 //只用函数名,不加括号,是由于该句只是把回调函数名注册给xmlhttp.onreadystatechange //若是加了括号,则是调用函数,而后把该函数的返回值注册了。 //xmlhttp状态每次改变都会从新调用callback方法 xmlhttp.onreadystatechange=callback; //3. 利用open方法设置与服务器的链接信息 xmlhttp.open("GET","AjaxServer?name="+userName,true);//Post方法请自行google百度 //还能够用Post方法进行传送,//xmlhttp.open(“POST”,”AjaxServer”,true) //xmlhttp.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”) //4. 发送数据,开始和服务端进行交互 //之因此send(null)是由于第3步中,数据信息都在url里了,若是是Post方法,send(具体数据) //如xmlhttp.send(“name”+userName); //第3步中最后一个参数若是false,则运行到该句停止,一直等到数据返回;为true则代码继续运行 xmlhttp.send(null); } function callback(){ //5. 接收响应数据(在回调函数中针对不一样响应状态进行处理) //判断对象的状态是交互完成的 if(xmlhttp.readyState==4){ //0=未初始化,对象以建立,未调用open //1=open方法调用成功,send方法未调用 //2=send方法已调用,未开始接收数据 //3=正在接收数据,HTTP响应头信息已经接收,数据还没有接收完成 //4=完成 //判断http的交互是否成功 if(xmlhttp.status==200){//关于xmlhttp.status请自行google百度 //获取服务器端返回数据 varresponseText=xmlhttp.responseText; //纯文本方式,关于其余方式请自行google百度 //将数据显示在页面上 //(1)经过Dom方式找到div标签对应的元素节点 vardivNode=document.getElementById("result"); //(2)设置元素节点中的html内容 divfNode.innerHTML=responseText; }else{//出错信息} } } //这里有一个问题 就是 xmlhttp.open("GET","AjaxServer?name="+userName,true); 中的 AjaxServer 对于IE来讲 //有些问题,交不到 想要的Servlet中去时,能够在后面加 ?type=nihao 什么的 //例:xmlhttp.open("GET","/myBoKe/PingLunController",true); 这个不能到PingLunController.java中,调到了主要的servlet中去了。 多是我用了Iframe标签的 应该注意一下 // xmlhttp.open("GET","/myBoKe/PingLunController?type=in hao",true); 这样就能够了,很奇怪的