创建XMLHttpRequest对象

本文详细介绍了如何在IE浏览器中创建并使用XMLHttpRequest对象,包括MSXML解析器的不同版本处理XML的方法,以及如何在非IE浏览器环境下实现统一的XMLHttpRequest对象创建。同时提供了在不同浏览器环境中发送请求、处理响应的关键步骤和示例代码,旨在帮助开发者高效地进行网络请求操作。

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

获取 XMLHttpRequest对象
使用IE浏览器
IE浏览器使用 MSXML 解析器处理 XML, 根据IE中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码。
在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
牢牢记住其中的两行代码
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");


处理 Mozilla 和非 IE 浏览器
<script language="javascript" type="text/javascript">
var xmlHttp = new XMLHttpRequest();
</script>

var xmlHttp = false;
function createXMLHttp(){
try{
xmlHttp = new ActiveXObject("Mircrosoft.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlHttp = new XMLHttpRequest();
}
}
}


XMLHttpRequest对象常用方法和属性
void open(string method,string url,boolean asynch,string username,string password)
建立对服务器的调用,前2个参数是必要参数,后几个为可选参数
method:指定调用的方式(GET/POST)
url:指定调用资源的URL
asynch:是否采用异步。默认值为true,true表示采用异步。
最后2个参数允许指定特定的用户和密码


void send(content):向服务器发出请求
如果请求为异步,此方法立即返回,否则直到接到响应为止
可选参数可以是DOM对象实例或串

void setRequestHeader(string header,string value):设定头信息

response.setHeader("Cache-control","no-cache");设置页面不缓存
response.setHeader("pragma","no-cache");设置页面不缓存
此方法必须在调用Open方法之后调用

string getAllResponseHeaders():获取头信息
string getResponseHeader(string header):获取头信息


XMLHttpRequest对象属性
onreadystatechange: 每个状态改变都会触发这个事件处理器,通常是调用javascript回调函数
readyState :请求状态,0=未初始化 1=正在加载 3=交互中 4=完成
status :服务器状态码(200 ok,404 not found等)


statusText :HTTP状态码的相应文本(ok或not found等)。

responseText :服务器的响应,表示为一个串
responseXML :服务器的响应,表示为XML


交互示例

function validateEmali(){
createHttpRequest();
var email = document.getElementById("email");
var url = "validate?email="+escape(email.value);
xmlHttp.open("GET",url);
xmlHttp.onreadystatechange = callback;//应在send方法
xmlHttp.send(null);

}
function callback(){
if(xmlHttp.readyState==4 ){
if(xmlHttp.status==200 ){
//do something
}
}
}

使用XMLHttpRequest对象发送请求的基本步骤

1:创建XMLHttpRequest对象

2:告诉XMLHttpRequest对象的状态发生改变的时候(onreadystatechange)调用哪个函数

3:指定请求属性 XMLHttpRequest对象的Open方法

4:将请求发送个服务器 XMLHttpRequest对象的send方法,send方法可接受1个参数,这个参数

可以作为URL一部分发送个服务器


XMLHttpRequest对象不能请求脚本所在域之外的资源

xmlHttp.open("GET",url);
xmlHttp.onreadystatechange = callback;//应在send方法
xmlHttp.send(null);

if(xmlHttp.readyState==4 ){
if(xmlHttp.status==200 ){
//do something
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值