一、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 // 用于处理客户端请求二级联动的数据 // 1. 接收客户端发送的省份信息 $province = $_post['provcince']; // 2. 判断当前的省份信息,提供不同的城市信息 switch ($province){ case '山东省': echo '青岛市,济南市,威海市,日照市,德州市'; break; case '辽宁省': echo '沈阳市,大连市,铁岭市,丹东市,锦州市'; break; case '吉林省': echo '长春市,松原市,吉林市,通化市,四平市'; break; } // 服务器端响应的是字符串 ?>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
ajax与$.ajax实例详解
jquery中ajax执行顺序调整
ajax实现loading等待效果提高用户体验
以上就是ajax三种解析模式使用详解的详细内容。
