处理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. 控制iOS 7中的状态栏

    本文转载至:http://blog.csdn.net/pucker/article/details/12112105 苹果终于发布了iOS 7正式版,大批的用户都已经纷纷进行了升级.如果App是由Xc ...

  2. iOS各种问题处理

    本文转载至:http://www.cnblogs.com/ygm900/category/436923.html 推荐初学者前去学习.     mac 拷贝文件时报错 8060 解决方案 摘要: 解决 ...

  3. c#基础 第一讲

    using System;using System.Collections.Generic; using System.Text; namespace MYTest{ class Program { ...

  4. nat123动态域名解析软件使用教程

    nat123动态域名解析软件使用教程

  5. java面试基础题------》抽象类和接口有什么异同

    划重点!!!! 1.抽象类(abstract class)和接口(interface)有什么异同? 相同点 * 都不能被直接实例化,都可以通过继承实现其抽象方法. * 都是面向抽象编程的技术基础,实现 ...

  6. 如何让ios启动画面停留更长时间

    几种方法: 方法1:在AppDelegate.m里写上 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...

  7. Spark源码分析 -- PairRDD

    和一般RDD最大的不同就是有两个泛型参数, [K, V]表示pair的概念 关键的function是, combineByKey, 所有pair相关操作的抽象 combine是这样的操作, Turns ...

  8. 设计模式之——Template模板模式

    Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的 ...

  9. PHP的生命周期

    了解PHP生命周期之前,先了解一下apache是怎么和php关联起来的吧~ 1.Apache运行机制剖析 ----------------------------- 总体示意图如下:   Apache ...

  10. 21.SQL to MongoDB Mapping Chart-官方文档摘录

    有关关系型数据库跟Mongod的语法对比 In addition to the charts that follow, you might want to consider the Frequentl ...