ajax ——纯JS写法

function ajax(method, url, data, success) {  //方式,地址,数据,函数
    var xhr = null;  //设置ajax变量
    try {  //标准浏览器
        xhr = new XMLHttpRequest();
    } catch (e) {  //IE6
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    
    if (method == 'get' && data) {  
    //判断是否是get方法且是否存在date数据
        url += '?' + data;  //如果存在数据就是?后面写数据
    }
    
    xhr.open(method,url,true); //打开外部文件
    if (method == 'get') {  //如果get方法send里面不写内容
        xhr.send();
    } else {  //如果是post方法
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');  //设置请求头说明文档类型
        xhr.send(data);  //send里传递数据
    }
    
    xhr.onreadystatechange = function() {  //如果readyState发生变化的时候执行的函数
        
        if ( xhr.readyState == 4 ) {  //ajax为4说明执行完了

            if ( xhr.status == 200 ) { //如果是200说明成功
          //如果函数存在的话执行
                success && success(xhr.responseText); 
            } else {
                alert('出错了,Err:' + xhr.status);
            }
        }
        
    }
}

 调用方法:ajax(方式, 地址, 数据, 成功执行的函数)

ajax('get','getNews.php','',function(data) {
                var data = JSON.parse( data ); //如果ajax成功的话执行的函数内容
                    
                var oUl = document.getElementById('ul1');
                var html = '';
                for (var i=0; i<data.length; i++) {
                    html += '<li><a href="">'+data[i].title+'</a> [<span>'+data[i].date+'</span>]</li>';
                }
                oUl.innerHTML = html;
            });

参数:

参数1:方式,get 或 post

参数2:调用文件的地址。例如 getNews.php

参数3:get传递的数据,没有的话不写

参数4:如果ajax成功的话执行的函数,其中date的值为xhr.responseText

posted @ 2017-04-18 15:00  念念念不忘  阅读(502)  评论(0)    收藏  举报