以XML格式传输数据 (1)--Ajax学习笔记
2007-12-11 19:58
453 查看
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¶mName2=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响应信息!
可能您是在刚认识了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¶mName2=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响应信息!
相关文章推荐
- 以XML格式传输数据 (1)--Ajax学习笔记
- 以XML格式传输数据 (2)--Ajax学习笔记
- 以XML格式传输数据 (2)--Ajax学习笔记
- 学习笔记--Ajax:XML格式返回数据
- ALSA声卡10_从零编写之数据传输_学习笔记
- ffmpeg--学习笔记(二)-将电脑的摄像头数据传输到服务器上去
- 【DWR】学习笔记(一):基本配置&&前后台的数据传输与处理
- node学习笔记(二)(ajax方式向node后台提交数据)
- 学习笔记--Ajax:html格式返回数据
- ajax学习系列之十: 使用 JSON 进行数据传输
- JSON数据传输学习笔记
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
- jQuery学习笔记之 Ajax操作篇(二) - 数据传递
- jQuery学习笔记之 Ajax操作篇(一) - 数据加载
- Javascript学习指南(第2版)笔记(六) DOM、Ajax及其数据
- [WCF 学习笔记] 8. 数据传输
- jQuery 学习笔记四 Ajax提交数据
- jQuery学习笔记--ajax查询,jQuery解析返回的json数据 详解
- PHP学习笔记(六):通过ajax实时匹配后台的数据
- Ajax处理JSON数据参考【学习笔记】