您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

ajax三种解析模式使用详解

2025/4/20 11:07:14发布33次查看
这次给大家带来ajax三种解析模式使用详解,ajax三种解析模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。
一、ajax中的json格式
html代码:
<html> <body>  <input type="button" value="ajax" id="btn">  <script>   var btn = document.getelementbyid(btn);   btn.onclick = function(){     var xhr = getxhr();     xhr.open(post,10.php);     xhr.setrequestheader(content-type,application/x-www-form-urlencoded);     /*      * 在客户端如何构建json格式      * * 构建符合json格式的字符串      */     var user = '{name:zhangwuji,pwd:123456}';     xhr.send(user=+user);     xhr.onreadystatechange = function(){       if(xhr.readystate==4&&xhr.status==200){         var data = xhr.responsetext;         /*          * 使用eval()函数进行转换          * * 使用()将其包裹,eval()函数强制将其转换为json格式(javascript代码)          * * 不使用()将其包裹,eval()函数将其识别为一个空的代码块          */         var json = eval((+data+));         console.log(json);       }     }   }   function getxhr(){     var xhr = null;     if(window.xmlhttprequest){       xhr = new xmlhttprequest();     }else{       xhr = new activexobject(microsoft.xmlhttp);     }     return xhr;   }  </script>  </body> </html>
php代码:
<?php // 接收客户端发送的请求数据 $user = $_post['user']; // 就是一个json格式的string字符串 //var_dump($user); $json_user = json_decode($user,true); //var_dump($json_user['name']); $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; //var_dump(json_decode($json)); // 响应数据符合json格式的字符串 // 1. 手工方式构建 //echo '{"name":"zhouzhiruo","pwd":"123456"}'; // 2. 使用json_encode()函数 echo json_encode($json_user); ?>
二    ajax中的xml格式
html页面:
<html>    <body>  <input type="button" value="ajax" id="btn">  <script>   var btn = document.getelementbyid(btn);   btn.onclick = function(){     // 实现ajax的异步交互     var xhr = getxhr();     xhr.open(post,07.php);     xhr.setrequestheader(content-type,application/x-www-form-urlencoded);     /*      * 如何构建符合xml格式的请求数据      * * 注意      *  * 请求数据的格式 - key=value 不能改变的      * * 将value值构建成符合xml格式的数据      *  * 数据类型 - 字符串(string)      *  * 格式符合xml的语法要求      * * 编写注意      *  * 定义变量 - 专门构建xml格式的数据      *  * 在send()方法进行拼串      */     var user = <user><name>zhangwuji</name><pwd>123456</pwd></user>;     xhr.send(user=+user);     xhr.onreadystatechange = function(){       if(xhr.readystate==4&&xhr.status==200){         // 接收服务器端的响应数据         var xmldoc = xhr.responsexml;         var nameele = xmldoc.getelementsbytagname(name)[0];         var txtele = nameele.childnodes[0];         console.log(txtele.nodevalue);       }     }   }   function getxhr(){     var xhr = null;     if(window.xmlhttprequest){       xhr = new xmlhttprequest();     }else{       xhr = new activexobject(microsoft.xmlhttp);     }     return xhr;   }  </script>  </body> </html>
php页面代码:
<?php // 接收客户端发送的请求数据 $user = $_post['user'];//符合xml格式要求的string类型 //var_dump($user); // 创建domdocument对象 $doc = new domdocument(); // 调用loadxml()方法 $result = $doc->loadxml($user);   //var_dump($doc);   // 如何构建符合xml格式的数据   /* 修改响应头的content-type值为text/xml   header('content-type:text/xml');   echo $user;// 符合xml格式的string类型   */   header('content-type:application/xml');   echo $doc->savexml(); ?>
三   ajax中的html格式
html页面:
<html>   <body>  <select id="province">   <option>请选择</option>   <option>山东省</option>   <option>辽宁省</option>   <option>吉林省</option>  </select>  <select id="city">   <option>请选择</option>  </select>  <script>   /*    * 需要思考哪些事情?    * * 在什么时候执行ajax的异步请求?    *  * 当用户选择具体的省份信息时    */   // 1. 为id为province元素绑定onchange事件   var provinceele = document.getelementbyid(province);   provinceele.onchange = function(){     // 清空     var city = document.getelementbyid(city);     var opts = city.getelementsbytagname(option);     for(var z=opts.length-1;z>0;z--){       city.removechild(opts[z]);     }     if(provinceele.value != 请选择){       // 2. 执行ajax异步请求       var xhr = getxhr();       xhr.open(post,06.php);       xhr.setrequestheader(content-type,application/x-www-form-urlencoded);       xhr.send(provcince=+provinceele.value);       xhr.onreadystatechange = function(){         if(xhr.readystate==4&&xhr.status==200){           // 接收服务器端的数据内容           var data = xhr.responsetext;           // data是字符串,转换为数组           var cities = data.split(,);           for(var i=0;i php页面:
<?php // 用于处理客户端请求二级联动的数据 // 1. 接收客户端发送的省份信息 $province = $_post['provcince']; // 2. 判断当前的省份信息,提供不同的城市信息 switch ($province){ case '山东省': echo '青岛市,济南市,威海市,日照市,德州市'; break; case '辽宁省': echo '沈阳市,大连市,铁岭市,丹东市,锦州市'; break; case '吉林省': echo '长春市,松原市,吉林市,通化市,四平市'; break; } // 服务器端响应的是字符串 ?>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
ajax与$.ajax实例详解
jquery中ajax执行顺序调整
ajax实现loading等待效果提高用户体验
以上就是ajax三种解析模式使用详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product