php ajax 请求原理
2013-09-16 23:40
169 查看
<html> <body> <script type="text/javascript"> var xmlHttpRequest; function getXmlHttpObject(){ //不同的浏览器获取xmlhttprequest对象的方法不一样 if(window.ActiveXObject){ //说明是ie浏览器 xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); }else{ //说明不是ie xmlHttpRequestp=new XMLHttpRequest(); } return xmlHttpRequest; } var myXmlHttpRequest=""; //验证用户名是否存在 function checkName(){ myXmlHttpRequest=getXmlHttpObject();//这个就是ajax引擎对象 //怎么判断创建是否ok if(myXmlHttpRequest){ //说明创建成功 这说明1号线完成了 现在接下来完成2号线 发送给服务器 //通过myXmlHttpRequest发送给服务器 然后交给某个页面 //这个url是你要对那个页面发送ajax请求 这里要发送给某个控制器 //true是表示使用异步机制 false表示不使用异步机制 ajax是用异步来处理的 一般是用true // var url="/ajax/testProcess.php?mytime="+new Date()+"&username="+$("username").value; var url="/ajax/testProcess.php"; //这是打开请求 // myXmlHttpRequest.open("get",url,true); //发送的数据 var data="username="+$("username").value; //用post发送请求 打开请求 myXmlHttpRequest.open("post",url,true); //用post发送还必须要这一句话 myXmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //指定回调函数 4号线要使用回调函数 调用回调函数 onreadystatechange状态改变触发器 有4中状态 要到第4个状态说明成功了 myXmlHttpRequest.onreadystatechange=chuli; //真的发送请求 如果是get请求可以填null 如果是post请求 要填实际的数据 // myXmlHttpRequest.send(null); myXmlHttpRequest.send(data); //2号创建好 了 现在要创建3号线 //这里特别注意一下 如果你是用get发送的请求 如果你写的用户名没有改变 浏览器不会发送请求 会从缓存里面取 怎么样解决这个问题 这里有二种方法:1.url后面带一个总是变化的数 比如当前时间 2.在服务器回送这个结果时,禁锢缓存 //这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式 //header("Content-Type: text/xml;charset=utf-8"); //告诉浏览器不要缓存数据 //header("Cache-Control: no-cache"); } } //回调函数 function chuli(){ //我要取出从testProcess.php返回的数据 if(myXmlHttpRequest.readyState==4){ if(myXmlHttpRequest.status==200){ //取出数据 ,这要根据返回的文本取出 有三种格式 html xml json //window.alert("服务器返回的是:".myXmlHttpRequest.responseText); var mes=myXmlHttpRequest.responseText; //把字符串转成对象 var new_obj=eval("("+mes+")"); } } } function $(id){ return document.getElementById(id); } </script> <form name="getXmlHttpObject"> 用户: <input type="text" name="username" id="username"/><input type="button" value="检查用户" onclick="checkName()" /> 时间: <input type="text" name="time" /> </form></body> </html> //这个是在服务器中的控制器 <?php //这里两句话很重要,第一讲话告诉浏览器返回的数据是xml格式 header("Content-Type: text/html;charset=utf-8"); //告诉浏览器不要缓存数据 header("Cache-Control: no-cache"); //接收数据 $username=$_POST['username']; echo $username;//这是3号线 $info=""; if($username==shunping){ $info='{"mes":"用户名不可以用"}'; }else{ $info='{"mes":"用户名可以用"}'; } echo $info; ?>
相关文章推荐
- PHP判断ajax请求的原理
- PHP如何判断ajax请求
- PHP 和 AJAX 请求 实现Suggest
- AJAX PHP请求实例
- PHP的session阻塞机制带来的单页面多ajax请求阻塞的解决
- PHP检测 ajax 请求
- PHP 和 AJAX 请求
- AJAX ASP/PHP 请求实例
- AJAX ASP/PHP 请求实例
- jquery的ajax跨域请求原理和示例
- 判断是否为AJAX 请求原理
- php中如何判断一个网页请求是ajax请求还是普通请求
- ajax请求php页面中生成的session,无法在其他普通php页面使用
- 本地端口模拟ajax异步请求php文件
- PHP AJAX JSONP实现跨域请求使用实例
- jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
- 多个ajax请求php后端导致反应时间慢解决方案
- jQuery通过Ajax向PHP服务端发送请求并返回JSON数据
- 客户端发送PHP请求,实现原理
- [PHP]接口请求校验的原理