一、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<cities.length;i++){ var option = document.createElement(\"option\"); var textNode = document.createTextNode(cities[i]); option.appendChild(textNode); city.appendChild(option); } } } } } // 定义创建XMLHttpRequest对象的函数 function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject(\"Microsoft.XMLHttp\"); } return xhr; } </script> </body> </html>
php页面:
<?php // 用于处理客户端请求二级联动的数据 // 1. 接收客户端发送的省份信息 $province = $_POST[\'provcince\']; // 2. 判断当前的省份信息,提供不同的城市信息 switch ($province){ case \'山东省\': echo \'青岛市,济南市,威海市,日照市,德州市\'; break; case \'辽宁省\': echo \'沈阳市,大连市,铁岭市,丹东市,锦州市\'; break; case \'吉林省\': echo \'长春市,松原市,吉林市,通化市,四平市\'; break; } // 服务器端响应的是字符串 ?>
以上内容是小编给大家分享ajax的三种解析模式,希望大家喜欢。
本文地址:https://www.stayed.cn/item/884
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我