AJAX页面无刷新。传输数据与接收数据都是通过JS代码来完成的。
要使用AJAX进行数据的传输,需要以下几个步骤:
第一步:获取数据传输的对象XMLHttpRequest,在获取的时候注意判断浏览器的类型
js 代码
- /*
- *最终目的只有一个,就是获得XMLHttpRequest对象(只有有了它以后,
- *才能以ajax方式发送请求数据)
- *函数内部的实现代码是为了兼容不同浏览器类型
- */
- function getAjaxObject(){
- var xmlHttpRequest;
- if(window.XMLHttpRequest){//Mozilla,IE7.0
- xmlHttpRequest = new XMLHttpRequest();
- if(xmlHttpRequest.overrideMimeType){
- xmlHttpRequest.overrideMimeType("text/xml");
- }
- }else if(window.ActiveXObject){//IE
- try{
- xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
- }catch(e){
- try{
- xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
- }catch(e){}
- }
- }
- return xmlHttpRequest;
- }
第二步:调用XMLHttpRequest对象的open方法,open方法里面传递的参数分别为发送信息的方式、发送的目标、发送的布尔变量(我们打算提交的是一个异步的XMLHTTP请求,必须为 true)。
js 代码
- xmlHttpRequest.open(method,url,true);
注意:如果是用的 post 方法传输数据,那么还需要添上一句
java 代码
- if("post"==method.toLowerCase()){
- xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- }
第三步:设置响应的处理方法,即为响应数据的处理方法
js 代码
- /*具体负责处理服务器返回数据的函数*/
- xmlHttpRequest.onreadystatechange = function (){
- //当服务器将数据返回给客户端时,readyState状态值为4
- if(xmlHttpRequest.readyState==4){
- //当服务器返回的数据是正常的数据时,status状态值为200
- if(xmlHttpRequest.status==200){
- //通过XMLHttpRequest对象的responseText属性获取
- //服务器返回的文本信息
- var returnMsg = xmlHttpRequest.responseText;
- //这里为具体的处理方式代码
- }
- }
- }
上面3步完成以后,调用xmlHttpRequest对象的send () 方法就可以了。这里可以看出前面3个步骤是准备工作,把准备工作做好以后,xmlHttpRequest对象才发送请求。