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