[转]js操作异步请求返回的XML数据操作

本文深入探讨了XMLHttpRequest对象的使用方法,包括其构造、发送HTTP请求、处理响应状态和解析XML数据的过程。详细解释了如何在JavaScript中实现异步通信,特别关注于状态改变的事件处理和数据获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //兼容性创建xmlHttp对象  
if (window.ActiveXObject && !window.XMLHttpRequest) {
window.XMLHttpRequest = function() {
var msxmls = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp", "Microsoft.XMLHttp"],ex;
for (var i = 0; i < msxmls.length; i++)
try {
return new ActiveXObject(msxmls[i])
} catch(ex) {}
throw new Error("No XML component installed! ");
}
}
//实例化一个xmlhttp对象
var xmlHttp = new XMLHttpRequest();
//XMLHttp的readyState状态改变时处理函数绑定
xmlHttp.onreadystatechange = HandlerStateChange;

//创建一个新的http请求,并指定此请求的方法、URL以及验证信息
xmlHttp.open("GET", "SiteConfigXML.xml", false);

//发送请求到http服务器并接收回应
xmlHttp.send();

function HandlerStateChange() {
//状态0 -- 对象已建立,但是尚未初始化(尚未调用open方法)
//状态1 -- 对象已建立,尚未调用send方法
//状态2 -- send方法已调用,但是当前的状态及http头未知
//状态3 -- 已接收部分数据,因为响应及http头不全,
// 这时通过responseBody和responseText获取部分数据会出现错误
//状态4 -- 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
//alert(xmlHttp.readyState)

//返回当前请求的http状态码[200--成功
//alert(xmlHttp.status);
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
//responseText 将响应信息作为字符串返回
//responseXML xml的文档节点
var xmlData = xmlHttp.responseXML;
//documentElement 返回跟节点
var root = xmlData.documentElement;
//attributes 获取属性集合
var attr = root.attributes;
//alert(attr.length)
//ie下获取节点值 text
//FF下获取节点值 textContent
//兼容性获取
var oFind = root.getElementsByTagName("findTag")[0];
var isFindTXT = root.text ? oFind.text: oFind.textContent;
alert(isFindTXT)
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值