以XML格式传输数据 (1)--Ajax学习笔记

Ajax

可能您是在刚认识了Ajax的核心对象XMLHttpRequest时才认为Ajax中的XML是怎么回事,或许你肯定它就是Ajax中的x ,但是实际上它和XML没有什么直接的关系.这都与它的名字有很大的关系,XMLHttpRequest,而且是出现在Ajax里面那肯定就是和XML有关了.其实在大多数Ajax应用中XML用的并不是特别多,主要还都是用名/值对进行传值,下面来介绍下如何使用XML格式在Ajax中进行传递数据.

首先,从客户端把数据传递到服务器,Ajax应用中基本上都是用文本的方式来直接传递请求参数,如:

 清单 1. 使用普通文本发送名/值对function sendMessage() {
   var firstName = document.getElementById("firstName").value;
  var lastName = document.getElementById("lastName").value;
  var street = document.getElementById("street").value;
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  var zipCode = document.getElementById("zipCode").value;

   var url = "/scripts/saveAddress.php?firstName=" + escape(firstName) +
    "&lastName=" + escape(lastName) + "&street=" + escape(street) +
    "&city=" + escape(city) + "&state=" + escape(state) +
    "&zipCode=" + escape(zipCode);

    xmlHttp.open("GET", url, true);

    xmlHttp.onreadystatechange = confirmUpdate;

    xmlHttp.send(null);
}


上面的例子就是直接把参数添加在url后用 ?paramName1=value2&paramName2=value2的形式来传递数据,

这样做的好处是浏览器和服务器只需要把参数当作普通文本进行处理,速度会比较快,不需要进行格式转换.

下面来看在Ajax应用如何用XML格式来传递参数到服务器,看看下面的例子;

清单 2. 用 XML 发送名/值对
function sendMessage() {
  var firstName = document.getElementById("firstName").value;
  var lastName = document.getElementById("lastName").value;
  var street = document.getElementById("street").value;
  var city = document.getElementById("city").value;
  var state = document.getElementById("state").value;
  var zipCode = document.getElementById("zipCode").value;

  var xmlString = "<profile>" +
    "  <firstName>" + escape(firstName) + "</firstName>" +
    "  <lastName>" + escape(lastName) + "</lastName>" +
    "  <street>" + escape(street) + "</street>" +
    "  <city>" + escape(city) + "</city>" +
    "  <state>" + escape(state) + "</state>" +
    "  <zip-code>" + escape(zipCode) + "</zip-code>" +
    "</profile>";


     var url = "/scripts/saveAddress.php";

    xmlHttp.open("POST", url, true);

    xmlHttp.setRequestHeader("Content-Type", "text/xml");

 
  xmlHttp.onreadystatechange = confirmUpdate;

    xmlHttp.send(xmlString);
}

现在您应该知道是怎么回事了,其实在Ajax传递XML真的显得很笨拙,它需要固定的XML格式,以及多余的字符,还要把请求格式给设置成(text/xml),而且在传递的时候并不是象在传递普通文本一样放在URL后面传递,而是由send方法亲自传递到服务器,服务器还要把它们以XML格式进行分析处理,然后做出响应! !真是废时又废力,所以说不推荐使用XML传递数据到服务器,除非 服务器它只接受XML类型!

下次我们看看另一种情况,从服务器发出XML响应信息!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值