javascript中ajax的封装与使用

ajax封装

/* 
        method
        url
        data
        success  数据下载成功以后执行的函数
        error    数据下载失败以后执行的函数
    */
    function $ajax({method ="get",url,data,success,error}){
    //1、创建ajax对象
    var xhr = null;
    try{
        xhr = new XMLHttpRequest();
    }catch(error){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //判断如果数据存在
    if(data){
        data = querystring(data);
    }
    if(method=="get" && data){
        url +="?" + data;
    }

    xhr.open(method,url,true);
    if(method=="get"){
        xhr.send();
    }else{
        //必须在send方法之前,去设置请求的格式
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
        xhr.send(data);
    }
        //4、等待数据响应
        
        xhr.onreadystatechange = function(){
            if(xhr.readyState==4){
                //判断本次下载的状态码都是多少
                if(xhr.status==200){
                    /*
                        如何去处理数据操作不确定,
                        回调函数
                    */
                    if(success){
                        success(xhr.responseText);
                    }
                    
                }else{
                    if(error){
                        error("Error:" +xhr.status);
                    }
                    
                }
            }
        }

}
function querystring(obj){
    var str = "";
    for(var attr in obj){
        str += attr + "=" + obj[attr] + "&";
    }
    return str.substring(0,str.length-1);
}

ajax的使用

window.onload = function(){
            var oGetBtn = document.getElementById("getBtn");
            var oPostBtn = document.getElementById("postBtn");

            //1、get请求
            oGetBtn.onclick = function(){
                $ajax({
                    url:"1.get.php",
                    data:{
                        username:"xxxx",
                        age:15,
                        password:"123sx"
                    },
                    success:function(result){
                        alert("GET请求下载到的数据"+result);
                    },
                    error:function(msg){
                        alert(msg);
                    }
                })
            }

            //1、post请求
            oPostBtn.onclick = function(){
                $ajax({
                    method:"post",
                    url:"1.post.php",
                    data:{
                        username:"xxxx",
                        age:15,
                        password:"123sx"
                    },
                    success:function(result){
                        alert("post请求下载到数据:"+result);
                    },
                    error:function(msg){
                        alert(msg);
                    }
                })
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值