首页 > 编程 > JavaScript > 正文

自己实现ajax封装示例分享

2019-11-20 20:53:12
字体:
来源:转载
供稿:网友

复制代码 代码如下:

 //javascript Object: ajax Object
//Created By RexLee
function Ajax(url,data){
    this.url=url;
    this.data=data;
    this.browser=(function(){  
        if(navigator.userAgent.indexOf("MSIE")>0) {  
            return "MSIE";//IE浏览器
        }else{
            return "other";//其他
    }})();
};
Ajax.prototype={
    get:function(){
        var result;
        var xmlhttp;
        if(this.browser=='MSIE'){
            try{
                xmlhttp=new ActiveXObject('microsoft.xmlhttp');
                }catch(e){
                    xmlhttp=new ActiveXObject('msxml2.xmlhttp');
                    }
            }else{
                xmlhttp=new XMLHttpRequest();
            };
        xmlhttp.onreadystatechange=function(){
            result = xmlhttp.responseText;//闭包,不能采用this.属性
        };
        xmlhttp.open('GET',this.url+'?'+this.data,false);//true无法抓取数据,why?
        xmlhttp.send(null);
        return result;
    },
    post:function(){
        var result;
        var xmlhttp;
        if(this.browser=='MSIE'){
            xmlhttp=new ActiveXObject('microsoft.xmlhttp');
            }else{
                xmlhttp=new XMLHttpRequest();
            };
        xmlhttp.onreadystatechange=function(){
            result = xmlhttp.responseText;//闭包,不能采用this.属性
        };
        xmlhttp.open('POST',this.url,false);//需设为false,否则无法抓取responseText
        xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//POST中,这句必须
        xmlhttp.send(this.data);
        return result;
    }
};

//var a=new ajax('opp2.js','');
//alert('by GET//n'+a.get())
//alert('by POST//n'+a.post());
///////////////////////////////

 

window.onload=function(){
document.getElementById("btn").onclick=function(){
    var p=document.getElementById("t").value;
    var a=new Ajax("phpOOP/getPage.php","page="+p);
    document.getElementById("box").innerHTML=a.get();
    };
}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表