处理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. docker实用命名

    删除tag/镜像: #删除tag docker rmi index-dev.qiniu.io/cs-kirk/nginx:latest docker rmi index-dev.qiniu.io/cs ...

  2. DM8168 OpenCV尝试与评估(编译ARM版OpenCV)

     交叉编译opencv2.3.1,并在DM8168 cortex A8中执行图像处理. 开发环境: PC:ubuntu12.04LTS.Intel Core 2 Duo CPU  E7200@2. ...

  3. 工作流JBPM_day01:1-说明_MyProcessDesigner_流程设计器

    工作流JBPM_day01:1-说明 先只做请假功能,怎么做? (请假可以和考勤整合到一起) 1,银行(拿号---叫号---办理) 2,餐馆(点菜---上菜---结账) 3,网购(下订单--配送--收 ...

  4. org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService: mapreduce_shuffle do

    在yarn-site.xml 配置文件中增加: <property> <name>yarn.nodemanager.aux-services</name> < ...

  5. mysql5.6的二进制包安装

    author: headsen chen data :2018-06-08  16:21:43 1. 创建存放软件文件夹 # cd / #mkdir a 2.下载MySQL5.6二进制包 cd a w ...

  6. 【BZOJ4864】[BeiJing 2017 Wc]神秘物质 Splay

    [BZOJ4864][BeiJing 2017 Wc]神秘物质 Description 21ZZ 年,冬. 小诚退休以后, 不知为何重新燃起了对物理学的兴趣. 他从研究所借了些实验仪器,整天研究各种微 ...

  7. [Gradle] 如何强制 Gradle 重新下载项目的依赖库

    强制刷新 Gradle 依赖库缓存 $ gradle build --refresh-dependencies The --refresh-dependencies option tells Grad ...

  8. mysql 容灾 灾备 备份

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

  9. Network Security Services If you want to add support for SSL, S/MIME, or other Internet security standards to your application, you can use Network Security Services (NSS) to implement all your securi

    Network Security Services | MDN https://developer.mozilla.org/zh-CN/docs/NSS 网络安全服务 (NSS) 是一组旨在支持支持安 ...

  10. 使用Nana进行C++ GUI开发

    Nana官网地址:nanapro.org 简单示例:NanaDemo.cpp #include <nana/gui.hpp> #include <nana/gui/widgets/b ...