复习原生ajax

function ajax(url, fnSucc, fnFaild)
{
    //1.创建
    if(window.XMLHttpRequest)
    {
        var oAjax=new XMLHttpRequest();
    }
    else
    {
        var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
    }
    
    //2.连接
    oAjax.open('GET', url, true);
    
    //3.发送
    oAjax.send();
    
    //4.接收
    oAjax.onreadystatechange=function ()
    {
        if(oAjax.readyState==4)        //完成
        {
            if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304)
            {
                //alert('成功:'+oAjax.responseText);
                if(fnSucc)
                {
                    fnSucc(oAjax.responseText);
                }
            }
            else
            {
                //alert('失败:'+oAjax.status);
                if(fnFaild)
                {
                    fnFaild(oAjax.status);
                }
            }
        }
    };
}

辅助函数处理url

function json2url(json){
    json.t=Math.random();

    var arr=[];

    for(var i in json)
    {
        arr.push(i+'='+json[i]);
    }

    return arr.join('&');
}

实例1:读取文字

window.onload=function ()
{
    var oBtn=document.getElementById('btn1');
    
    oBtn.onclick=function ()
    {
        //alert('aaa.txt?t='+Math.random());
        ajax('aaa.txt?t='+Math.random(), function (str){
            //str——从服务器读回来的内容
            alert(str);
        });
    };
};

实例2:注册和登陆

window.onload=function(){
    var oAddUser=document.getElementById('add_user');
    var oAddPass=document.getElementById('add_pass');
    var oAddBtn=document.getElementById('add_btn');

    oAddBtn.onclick=function()
    {
        var url='user.php?'+json2url({
            act:'add',
            user:oAddUser.value,
            pass:oAddPass.value
        })

        ajax(url,function(str){
            var json=eval('('+str+')');
            if(json.error){
                alert('有问题'+json.desc);
            }else{
                alert('注册成功');
            }
        },function(){
            alert('失败');
        });
    };

    var oLgnUser=document.getElementById('login_user');
    var oLgnPass=document.getElementById('login_pass');
    var oLgnBtn=document.getElementById('login_btn');

    oLgnBtn.onclick=function(){
        var url='user.php?'+json2url({
            act:'login',
            user:oLgnUser.value,
            pass:oLgnPass.value
        })

        ajax(url,function(str){
            var json=eval('('+str+')');
            if(json.error){
                alert('有问题'+json.desc);
            }else{
                alert('登陆成功');
            }
        },function(){
            alert('失败');
        })
    };
};

本文属于原创,如需转载请注明地址

原文地址:https://www.cnblogs.com/leejersey/p/3614059.html