最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ajax三种解析模式使用详解

来源:动视网 责编:小采 时间:2020-11-27 19:52:14
文档

ajax三种解析模式使用详解

ajax三种解析模式使用详解:这次给大家带来ajax三种解析模式使用详解,ajax三种解析模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。一、Ajax中的JSON格式html代码:<html> <body> <input type="button" value=&quo
推荐度:
导读ajax三种解析模式使用详解:这次给大家带来ajax三种解析模式使用详解,ajax三种解析模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。一、Ajax中的JSON格式html代码:<html> <body> <input type="button" value=&quo


这次给大家带来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<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;
 }
 // 服务器端响应的是字符串
?>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Ajax与$.ajax实例详解

jquery中ajax执行顺序调整

Ajax实现loading等待效果提高用户体验

文档

ajax三种解析模式使用详解

ajax三种解析模式使用详解:这次给大家带来ajax三种解析模式使用详解,ajax三种解析模式使用的注意事项有哪些,下面就是实战案例,一起来看一下。一、Ajax中的JSON格式html代码:<html> <body> <input type="button" value=&quo
推荐度:
标签: 三种 解析 ajax
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top