处理ajax返回数据类型

ajax返回数据类型:纯文本格式、xml、json
如果只获取简单的字符串可以采用纯文本格式。
如果返回的数据类型比较复杂,则采用xml或者json。

采用XML来处理数据

服务器返回代码如下:
<?php

header("Content-Type:text/xml;charset=utf-8");

header("Cache-Control: no-cache");

$username = $_POST['username'];

if($username == 'chuizhi'){

$info= "<res><mes>用户名不可用</mes></res>";

}

else {

$info="<res><mes>用户名可以用</mes></res>";

}

echo $info;

?>
注意红色部分是text/xml格式,这样浏览器才会建立DOM对象(渲染DOM树),若为text/html格式,则浏览器只会以文本方式来存储数据

前端只需要修改回调函数即可
function callBack(xmlHttp){

  if (xmlHttp.readyState==4 && xmlHttp.status == 200){

  //获取DOM对象

  var xmlDoc = xmlHttp.responseXML;

  //获取mes节点,可能存在多个mes节点

  var mes = xmlDoc.getElementsByTagName("mes");
//<mes>content</mes>
//这里将标签包含的内容看成一个对象,获取文本对象的值
  $('myres').value = mes[0].childNodes[0].nodeValue;

  }

 }

json数据格式

xml以树形格式存储,json数据以键值对的形式存储
基本格式:
var people ={"Name": "Bob", "Tel":"123456789",  "email": "Bob@163.com" };
数组形式:
 var people =[{"Name": "Bob",,"Tel":"123456798","email": "Bob@163.com" },

                 {"Name": "Rose","Tel":"123854697","email": "Rose@126.com" }

                ];

混合形式1:
var people ={ "programmers": [

               {"Name": "Bob", "Tel":"1668975656","email": "brett@newInstance.com" },

                {"Name": "Jason", " Tel":"13851685142","email": "jason@servlets.com" }

              ]

    };

访问方式:people.programmers[0].Name
混合方式2:
var people ={ "username":"mary", "age":"20", "info":{"tel":"1234566","celltelphone":788666},

              "address":[

                      {"city":"beijing","code":"1000022"},

                     {"city":"shanghai","code":"2210444"}

              ]

        };
访问方式:

people.username

people.info.tel

people.address[0].city

用JSON获取数据

只需修改javascript 部分的回调函数
function callBack(xmlHttp){

  if (xmlHttp.readyState==4 && xmlHttp.status == 200){

  //获取字符串

  var resText = xmlHttp.responseText;

  //将其转换为JSON数据格式

  var resObj = eval("(" + resText +")");

  //通过键值对的方式来访问

  alert(resObj.mes);

  alert(resObj.id);

  alert(resObj.date);

  $('myres').value = resObj.mes;

  }

 }

后端要说明以text/html方式来发送数据
发送的数据虽然是字符串,但需采用JSON数据格式
<?php

header("Content-Type: text/html;charset=utf-8");

header("Cache-Control: no-cache");

$username = $_POST['username'];

if($username == 'chuizhi'){

$info= '{"mes":"该用户不可用", "id":"001", "date":"2000-10-10"}';

}

else {

$info='{"mes":"该用户可用","id":"001", "date":"2000-10-10"}';

}

echo $info;

?>

带你走进ajax(4)的更多相关文章

  1. 带你走进ajax(3)

    使用ajax实现用户名有效性验证 需求:当用户输入完用户名时,用户可以通过页面上的按键来确认当前的用户名是否有效.如下图所示 思路:用户触发按键后可以向服务器发起http请求,将用户名提交给服务器来进 ...

  2. 带你走进ajax(2)

    ajax原理介绍 传统的web应用 传统的web应用是客户端向服务器发送一个http请求后,客户端要一直等待服务器的响应,这时用户什么事也干不成. 最麻烦的是对于表单的提交.比如用户要填写用户信息,等 ...

  3. 带你走进AJAX(1)

    ajax是什么? (1)ajax (asynchronouse javascript and xml) 异步的javascript 和xml (2)ajax是一个粘合剂,将javascript.xml ...

  4. 小丁带你走进git的世界三-撤销修改

    一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...

  5. 小丁带你走进git的世界二-工作区暂存区分支

    小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...

  6. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  7. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

  8. 带你走进rsync的世界

    导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录.rsync共有3种使用方 ...

  9. 带你走进EJB--MDB

    在之前的文章中我们介绍了带你走进EJB--JMS 和 带你走进EJB--JMS编程模型 对JMS有了初步的了解, 作为EJB系列的文章我们会继续对EJB相关的内容做进一步深的学习和了解.而此次需要进行 ...

随机推荐

  1. PHP正则表达式 /i, /s, /x,/u, /U, /A, /D, /S等模式修饰符

    i (PCRE_CASELESS) 如果设置了这个修饰符, 模式中的字母会进行大小写不敏感匹配. m (PCRE_MULTILINE) 默认情况下, PCRE认为目标字符串是由单行字符组成的(然而实际 ...

  2. vue2.0中子组件通过v-modal改变父组件中的值

    父组件代码: <template lang="pug"> div p this is father child(v-model="data") &l ...

  3. Zabbix-3.0.x使用OneAlert发送告警

    导读 OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.它能以史上第二快的速度,对事件进行智能的组织. ...

  4. [黑金原创教程] FPGA那些事儿《设计篇 I》- 图像处理前夕

    简介 一本为入门图像处理的入门书,另外还教你徒手搭建平台(片上系统),内容请看目录. 注意 为了达到最好的实验的结果,请准备以下硬件. AX301开发板, OV7670摄像模块, VGA接口显示器, ...

  5. mybatis设置数据库连接的密码不需要加密

    mybatis设置数据库连接的密码不需要加密:在数据库连接配置处加上:<property name="connectionProperties" value="co ...

  6. js 操作对象的引用和操作实际对象的区分

    JavaScript高级程序设计-第3版-中 有这么一段话: 在操作对象时,实际上是在操作对象的引用而不是实际的对象.为此,引用类型的值是按引用访问的①. ① 这种说法不严密,当复制保存着对象的某个变 ...

  7. css3 transform 让 font-size 小于 12px

    做页面的时候,看到一个地方要求 font-size:8px ,测试了下,浏览器果然不支持,^_^,然后就想怎么办,理所当然的掉进了 -webkit-text-size-adjust:none; 的坑, ...

  8. 【Python算法】图与树的实现

    邻接列表及其类似结构 对于图结构的实现来说,最直观的方式之一就是使用邻接列表.下面我们来实现一个最简单的:假设现在我们有n个节点,编号分别为0,...,n-1. 然后,每个邻接列表就是一个数字列表,我 ...

  9. Unknown type name 'UIColor" 的问题

    遇到如下的问题 平时都没太注意创建UIViewController的时候Xcode给你引入的类库,所以解决方法是: 在.h里 #import <UIKit/UIKit.h> 解决问题!

  10. 剑指Offer——第一个只出现一次的字符位置

    题目描述: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置. 分析: 用一个数组统计每个字符出现的次数. 再次扫描数组,如果找到 ...