AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX的4条步骤。
function ajax(method,url,data,fnsuccess){ //1号线:创建ajax对象 var xhr; if(window.XMLHttpRequest){ xhr=new XMLHttpRequest(); } else{ xhr=new ActiveXObject('Microsoft.XMLHTTP'); } //2号线:发送http请求(准备数据,真正的发送) if(method=='GET' && data){ //如果是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); }
<?php //3号线:获取ajax传来的信息,做处理,再返回给ajax:后台做,或者后台协作 //这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式 header("Content-Type: text/text;charset=utf-8"); //告诉浏览器不要缓存数据 header("Cache-Control: no-cache"); $userName=$_GET['name']; //0 不合法 //1 已被注册 //2 可以注册 if($userName=='admin'){ //把内容拿到,进行判断,输出信息返回给ajax echo '{"inf":"这个用户名不能用"}'; } else{ echo '{"inf":"这个用户名能用"}'; } ?>
//4号线:拿到的数据返回给调用ajax函数的地方xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status==200){if(fnsuccess){fnsuccess(xhr.responseText);//注意这里只能接收字符串,json和html数据。如果传过来的是xml数据格式,要换用responseXML属性}}else{alert('出差了,出错状态是:'+xhr.status);}}}}