欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js 原生ajax:封装函数

程序员文章站 2024-03-17 11:55:28
...

1、打开服务器WampServer;
2、将文件放置在WampServer的www文件夹下;
3、打开时网页地址栏为localhost+www下的地址。eg:http://localhost/myworld/5.19ajax/index.html?__hbt=1495158145298
4、调用方式:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="button" id="btn" value="提交"/>
<span id="info"></span>
</body>
<script src="js/ajax_util.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var btn=document.getElementById('btn');
var info=document.getElementById('info');
btn.onclick=function(){
//date为空,无数据传送;
ajax('GET','/myworld/5.19ajax/span.txt','',function(str){
info.innerHTML=str;
})
}
</script>
</html>

函数为:

/*
 * ajax 4条线
 * 第3条线由后台完成,直接调用
 */

function ajax(method,url,data,fn){
    //1
    var xhr;
    if (window.XMLHttpRequest) {
        xhr=new XMLHttpRequest();
    }else{
        xhr=new ActiveXObject('Microsoft XMLHTTP');
    };
    //2
    if (method=='GET'&&data) {
        url=url+'?'+data;
    };
    xhr.open(method,url,true);
    if(method=='GET'){
        xhr.send(null);     
    }else{
        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 (xhr.responseXML) {
                    fn(xhr.responseXML);
                }else{
                    fn(xhr.responseText);
                };
            }else{
                console.log('出错状态为:'+xhr.status);
            };
        }
    };  
};