AJAX四步创建

1.ajax定义:用js异步的形式操作html/xml文档,数据交互,减少数据的请求,提高用户的体验,局部/整体刷新获取数据库的数据。

2.四步创建AJAX:

     2.1.新建ajax对象,在IE6以下存在兼容问题; 

     2.2.调用ajax对象的open的方法(即创建ajax请求),三个参数分别表示打开方式(get/post),打开的文件地址url,//是否同步打开(true/false);    

     2.3.发送ajax请求;

     2.4.设置xhr回调函数,处理接收的数据;

//步骤1:
var xhr=null; 
if(window.XMLHttpRequest){
   xhr=new XMLHttpRequest();    
}else{
   xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//步骤2:
xhr.open('get','1.txt',true);
//步骤3:
xhr.send();
//步骤4:
xhr.onreadystatechange=function(){       //onreadystatechange当工作状态 readyState值改变时触发的事件;readyState是ajax的工作状态 0(初始化,没有调用open方法),1(载入,调用send方法正在发送请求),2(载入完成,send完成收到响应全部内容),3(解析,解析响应内容),4(完成,解析完成可在客户端调用了);status是服务器的状态(http状态码),值为200时表示服务器正常

    if(xhr.readyState==4 && xhr.status==200){ 
        alert(xhr.responseText);    //xhr.responseText接收到的1.txt的响应结果      
    }                                
}

     2.5.带参数的ajax传递

         2.5.1 get方式传参:xhr.open('get','1.php?参数名=参数值&参数名=参数值',true);

         问题1缓存:但是可能存在缓存问题可以在后面接& new Date()时间戳;

         问题2乱码: 在php中设置utf编码 header("charset='utf8'"),或者参数名=encodeURI('中文');

        2. 5.2 post方式传参:先设置请求头xhr.setRequestHeader('content-type','application/x-www-form-urlencoded'),再xhr.send("参数名=参数值&参数名=参数值");没有缓存问题,没有乱码中文问题。在php中输出对象/数组需要先转换echo json.encode(arr);           

猜你喜欢

转载自blog.csdn.net/qq_42231156/article/details/84564885