处理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面试题--网络--如何处理多个网络请求的并发的情况

    如何处理多个网络请求的并发的情况 一.概念 1.并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配 ...

  2. vue2.0中,由于页面完成之后dom还未加载完成如何进行操作

    再vue中,当页面加载完成以后,dom还没有加载,是无法获取进行操作的,但是在vue2.0中提供了一个方法:this.$nextTick,在这个回调函数里面写dom操作即可: 如下代码: create ...

  3. vue+webpack2实现路由的懒加载

    当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 结合 Vue 的异步组 ...

  4. c++与js脚本交互,C++调用JS函数/JS调用C++函数

    <!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> Java ...

  5. Tomcat Server启动报错:Multiple Contexts have a path of "/east".

    原因是 conf/server.xml 文件中多了一个<Context></Context>标签,路径有重复,把他删掉就好了.

  6. 11.Curator扩展库

        Recipes组件包含了丰富的Curator应用的组件.但是这些并不是ZooKeeper Recipe的全部.大量的分布式应用已经抽象出了许许多多的的Recipe,其中有些还是可以通过Cura ...

  7. Java调用http保留访问状态

    package com.coracle; import com.coracle.yk.xframework.util.yunTongXun.HttpRequest; import java.io.*; ...

  8. Cookies and Session Tracking Client Identification cookie与会话跟踪 客户端识别

    w HTTP The Definitive Guide Cookies can be used to track users as they make multiple transactions to ...

  9. 网络编程 - 1.简单的套接字通信/2.加上通信循环/3.bug修复/4.加上链接循环/5.模拟ssh远程执行命令

    1.简单的套接字通信 服务端 ''' 服务端 接电话 客户端 打电话 1.先启动服务端 2.服务端有两种套接字 1.phone 用来干接收链接的 2.conn 用来干收发消息的 ''' import ...

  10. Jmeter(八)Jmeter监控tomcat

    1.配置tomcat的配置文件conf/tomcat-users.xml 2. 在“线程组”上右键“添加”--“配置元件”--“HTTP授权管理器”,这里主要是让JMeter能够通过Tomcat的基本 ...