//这个方法是用XMLHTTPRequest对象进行异步数据交互var xmlhttp;function verify(){ //alert(xmlhttp.readyState); //×××××××××readyState变更0.1.2.3.4 //1.使用dom的方式获取文本框中的值 //是dom中获取元素节点的一种方法一个元素节点对应hrml中的一个标签,如果<input>.value可以获得一个元素节点的value属性值 //注意取值.value;否则前台取不到本想取到的值 var userName = document.getElementById("userName").value; //2.创建xmlhttpRequest对象 //需要针对不同浏览器建立不同的代码 //Window.XMLHttpRequest尽量放置在window.ActiveXObject之前 if(window.XMLHttpRequest){ //针对firefox,mozillar,opera,safari,ie7,ie8 xmlhttp = new XMLHttpRequest(); //修正mozillar浏览器的bug语句 if (xmlhttp.overrideMimeType){ xmlhttp.overrideMimeType("text/xml"); } }else if(window.ActiveXObject){ //针对的是ie6,ie5.5,ie5 //两个可以用于创建XMLHTTPRequset对象的控件名称,保存在一个js的数组中 //排在前面的版本较新 var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for (var i = 0;i<activexName.length;i++){ try{ //取出一个控件的名进行创建,如果创建成功就停止循环 //如果创建失败,会抛出异常,然后可以继续循环,继续尝试创建 xmlhttp = new ActiveXObject(activexName[i]); break; }catch(e){ } } //确认XMLHTTPRequest对象创建成功 } if (!xmlhttp){ alert("XMLHttpRequest对象创建失败!!"); return; }else{ alert("xmlhttp"); }//2.注册回调函数 //注册回调函数时候,只需要函数名,不要加括号 xmlhttp.onreadystatechange = callback; ////3.设置链接信息 ////第一个参数表示http的请求方式,支持所有的http请求方式,主要使用个体和post方法 ////第二个参数表示请求的url地址,get方式请求的参数也在url中 ////第三个参数表示采用异步还是同步交互方式,true表示异步 //xmlhttp.open("GET","AJAXXMLServer?name=" + userName,true);//post请求方式的代码 xmlhttp.open("POST","AJAXXMLServer",true); //post方式需要自己设置http请求头 xmlhttp.setRequestHeader("Content-Tpye","application/x-www-form-urlencoded"); //post方式发送数据 xmlhttp.send("name= " + userName);////4.发送数据,开始和服务器端进行交互 ////同步方式下,send这句话在服务器端数据回来后才执行 ////异步方式下,send这句话会立即完成执行 ////get方式下的要发送数据都已经在url中了。因此不需要在词单独send内容了 //xmlhttp.send(null); }//回调函数function callback(){ //5.接收响应数据 //判断对象的状态是交互完成的即为4 if (xmlhttp.readyState == 4){ //判断http的交互是否成功 if (xmlhttp.status == 200){ //使用responseXML的方式来接受xml数据的dom对象 var domObj = xmlhttp.responseXML; //<message>是文本信息</message> //dom利用getElementsByTagName可以根据标签来获取元素节点。返回的是一个数组 var messageNodes = domObj.getElementsByTagName("message"); if (messageNodes.length > 0){ //获取message节点中的文本内容 //注:无效取值用法:::var responseMessage = messageNodes[0].innerHTML; //首先messaNodes[0]获取的的是message标签所获取的文本信息,即元素节点。 //message标签中的文本在dom中是message标签所对应的元素节点的子节点,firstChild可以获取当前节点的第一个子节点 //通过以下方式就可以获取到文本内容多对应的节点 var textNode = messageNodes[0].firstChild; //对于文本节点来说,可以通过nodeValue的方式返回文本节点的文本内容 var responseMessage = textNode.nodeValue;alert("-----------------"); //将数据显示在页面上 //通过dom的方式找到div标签所对应的元素节点 var divNode = document.getElementById("result"); //alert(divNode); //设置元素节点中的html内容 divNode.innerHTML = responseMessage; }else{ alert("XML数据格式错误,原始文本内容为"+ xmlhttp.responseText); } }else{ alert("出错了!"); } } }