面向对象之ajax

1.Ajax发送请求的几个步骤

1. 创建 XMLHttpRequest 对象

var xhr = new XMLHttpRequest();
//IE6 使用
var xhr= new ActiveXObject('Microsoft.XMLHTTP');

2. 准备发送

xhr.open('get','./check.php',true);

3. 执行发送动作

xhr.send(null);

4. 指定回调函数
        xhr.onreadystatechange=function(){
            if(xhr.readyState == 4){ if(xhr.status == 200){ var data=xhr.responseText; } } }
分析:
    /*
    * 参数一 :请求方式(get获取数据,post提交数据)
    * 参数二 :请求地址
    * 参数三 :同步或者异步标志位,默认是ture表示异步,false表示同步
    */
     get请求
     如果是get请求那么请求参数必须在url中传递
     encodeURI()用来对中文参数进行编码,防止乱码
     ----------------
     var param = 'username='+uname+'&password='+pw; xhr.open('get','03get.php?'+encodeURI(param),true); ------------------ xhr.open('get','./check.php',true); post请求 -------------------- var param = 'username='+uname+'&password='+pw; xhr.open('post','04post.php',false); // 3、执行发送动作 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(param);//post请求参数在这里传递,并且不需要转码 --------------------

2.服务器返回相应数据的两种格式

responseXMl

<booklist>
    <book>
        <name><?php echo $arr[0]['name'] ?></name> <author><?php echo $arr[0]['author'] ?></author> <desc><?php echo $arr[0]['desc'] ?></desc> </book> </booklist>

注意:使用xml传输数据时候需要使用header("Content-Type:text/xml;");
responseText

21.什么叫元数据

描述数据的数据,叫做元数据

json数据格式:

{
    "name":"zhansan",
    "age" :12,
    "hobby":["coding","swimming","singing"], "firend":{ "high":"180cm", "weight":"80kg" } }

原生ajax的封装

function ajax(url,type,param,dataType,callback){
    var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject('Microsoft.XMLHTTP'); } if(type == 'get'){ url += "?" + param; } xhr.open(type,url,true); var data = null; if(type == 'post'){ data = param; xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } xhr.send(data); xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ var data = xhr.responseText; if(dataType == 'json'){ data = JSON.parse(data); } callback(data); } } } }

 
 
 

转载于:https://www.cnblogs.com/ysshuai/p/6706439.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值