创建一个XMLHttpRequest对象(例子)
使用VBScript创建:
使用JavaScript创建:
XMLHttpRequest对象的方法:
XMLHttpRequest对象的属性:
<html>
<head>
<script type="text/vbscript">
dim xmlhttp
function loadXMLDoc(url)
set xmlhttp=createObject("Microsoft.XMLHTTP")
xmlhttp.onreadystatechange=getRef("state_Change")
call xmlhttp.open("GET",url,true)
call xmlhttp.send()
end function
function state_Change()
if xmlhttp.readyState=4 then
if xmlhttp.status=200 then
alert("XML数据正常")
document.getElementById("A1").innerText=xmlhttp.status
document.getElementById("A2").innerText=xmlhttp.statusText
document.getElementById("A3").innerText=xmlhttp.responseText
else
alert("XML检索结果:" & xmlhttp.statusText)
end if
end if
end function
</script>
</head>
<body onload="loadXMLDoc('text/note.xml')">
<h2>Using the HttpRequest Object</h2>
<p><b>状态:</b>
<span id="A1"></span>
</p>
<p><b>状态描述:</b>
<span id="A2"></span>
</p>
<p><b>返回:</b>
<br><span id="A3"></span>
</p>
</body>
</html>
<head>
<script type="text/vbscript">
dim xmlhttp
function loadXMLDoc(url)
set xmlhttp=createObject("Microsoft.XMLHTTP")
xmlhttp.onreadystatechange=getRef("state_Change")
call xmlhttp.open("GET",url,true)
call xmlhttp.send()
end function
function state_Change()
if xmlhttp.readyState=4 then
if xmlhttp.status=200 then
alert("XML数据正常")
document.getElementById("A1").innerText=xmlhttp.status
document.getElementById("A2").innerText=xmlhttp.statusText
document.getElementById("A3").innerText=xmlhttp.responseText
else
alert("XML检索结果:" & xmlhttp.statusText)
end if
end if
end function
</script>
</head>
<body onload="loadXMLDoc('text/note.xml')">
<h2>Using the HttpRequest Object</h2>
<p><b>状态:</b>
<span id="A1"></span>
</p>
<p><b>状态描述:</b>
<span id="A2"></span>
</p>
<p><b>返回:</b>
<br><span id="A3"></span>
</p>
</body>
</html>
使用JavaScript创建:
<html>
<head>
<script type="text/javascript">
var xmlhttp
function loadXMLDoc(url)
{
xmlhttp=null
// Mozilla
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest()
}
// IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change
xmlhttp.open("GET",url,true)
xmlhttp.send(null)
}
else
{
alert("你的浏览器不支持 XMLHTTP!")
}
}
function state_Change()
{
// xmlhttp 加载完成
if (xmlhttp.readyState==4)
{
// 处理成功
if (xmlhttp.status==200)
{
alert("XML数据处理成功!")
document.getElementById('A1').innerHTML=xmlhttp.status
document.getElementById('A2').innerHTML=xmlhttp.statusText
document.getElementById('A3').innerHTML=xmlhttp.responseText
}
else
{
alert("XML检索结果:" + xmlhttp.statusText)
}
}
}
</script>
</head>
<body onload="loadXMLDoc('text/note.xml')">
<h2>使用HttpRequest对象</h2>
<p><b>状态:</b>
<span id="A1"></span>
</p>
<p><b>状态描述:</b>
<span id="A2"></span>
</p>
<p><b>返回:</b>
<br><span id="A3"></span>
</p>
</body>
</html>
<head>
<script type="text/javascript">
var xmlhttp
function loadXMLDoc(url)
{
xmlhttp=null
// Mozilla
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest()
}
// IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change
xmlhttp.open("GET",url,true)
xmlhttp.send(null)
}
else
{
alert("你的浏览器不支持 XMLHTTP!")
}
}
function state_Change()
{
// xmlhttp 加载完成
if (xmlhttp.readyState==4)
{
// 处理成功
if (xmlhttp.status==200)
{
alert("XML数据处理成功!")
document.getElementById('A1').innerHTML=xmlhttp.status
document.getElementById('A2').innerHTML=xmlhttp.statusText
document.getElementById('A3').innerHTML=xmlhttp.responseText
}
else
{
alert("XML检索结果:" + xmlhttp.statusText)
}
}
}
</script>
</head>
<body onload="loadXMLDoc('text/note.xml')">
<h2>使用HttpRequest对象</h2>
<p><b>状态:</b>
<span id="A1"></span>
</p>
<p><b>状态描述:</b>
<span id="A2"></span>
</p>
<p><b>返回:</b>
<br><span id="A3"></span>
</p>
</body>
</html>
XMLHttpRequest对象的方法:
方法 | 描述 |
---|---|
abort() | 取消当前请求 |
getAllResponseHeaders() | 以字符串形式返回完整的http headers属性 |
getResponseHeader("headername") | 返回指定的http header值 |
open("method","URL",async,"uname","pswd") | 指定方法、URL(超链接)以及其它与请求相关的附加信息
方法参数可以获取“GET”、“POST”以及“PUT”的值;如果发送的数据长度大于512字节,那么请使用“POST”命令。 “Async”参数指定了发送的请求是否需要同步处理。“True:真”表示:脚本程序在send()方法执行后,无须等待服务器回应便可以继续处理;而“False:假”则表示:脚本程序在处理之前须要等待服务器端的回应 |
send(content) | 发送请求 |
setRequestHeader("label","value") | 将“标签(label)/ 值(value)”成对添加到将要被发送的“http header”中 |
XMLHttpRequest对象的属性:
属性 | 描述 |
---|---|
onreadystatechange | 一个能够激发所有状态改变的事件处理器 |
readyState | 返回对象的具体状态
0 = uninitialized |
responseText | 以字符串的形式返回响应 |
responseXML | 以XML的形式返回响应。这个属性返回了一个XML文档对象,该对象可以通过W3C DOM网络节点树的方法和属性来检验和解析。 |
status | 返回以数字形式表示的状态 ( 如:404表示"Not Found:未找到"; 200 为 "OK:通过" ) |
statusText | 返回以字符串形式表示的状态 (如: "Not Found:未找到" 或 "OK:通过") |