<script type="text/javascript">
function sendRequest(){
var xmlHttpReq=init();
function init(){
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
</script>
接上去,你需求利用Open()办法初始化XMLHttpRequest对象-指定HTTP办法和要利用的办事器URL。
var catalogId=encodeURIComponent(document.getElementById("catalogId").value);
xmlHttpReq.open("GET", "validateForm?catalogId=" + catalogId, true);
默许情形下,利用XMLHttpRequest发送的HTTP恳求是异步停止的,然而你可以显式地把async参数设置为true,如下面所展现的。
在这类情形下,对URL validateForm的挪用将激活办事器真个一个servlet,然而你应当可以注重到办事器端手艺不是基本性的;实践上,该URL多是一个ASP,ASP.NET或PHP页面或一个Web办事-这可有可无,只需该页面可以前往一个呼应-唆使CatalogID值是不是是无效的-便可。由于你在作一个异步伐用,所以你需求注册一个XMLHttpRequest对象将挪用的回调事务处置器-当它的readyState值改动时挪用。记住,readyState值的改动将会激起一个readystatechange事务。你可使用onreadystatechange属性来注册该回调事务处置器。
function processRequest(){
if(xmlHttpReq.readyState==4){
if(xmlHttpReq.status==200){
processResponse();
}
}
}
该processResponse()办法利用XMLHttpRequest对象的responseXML和responseText属性来检索HTTP呼应。如下面所注释的,仅当在呼应的媒体类型是text/xml,application/xml或以+xml开头时,这个responseXML才可用。这个responseText属性将以通俗文本模式前往呼应。关于一个XML呼应,你将按以下体例检索内容:
var msg=xmlHttpReq.responseXML;
借助于存储在msg变量中的XML,你可使用DOM办法getElementsByTagName()来检索该元素的值:
var catalogId=msg.getElementsByTagName("catalogId")[0].firstChild.nodeValue;
最初,经由过程更新Web页面的validationMessage div中的HTML内容并借助于innerHTML属性,你可以测试该元素值以创立一个要显示的动静:
if(catalogId=="valid"){
var validationMessage = document.getElementById("validationMessage");
validationMessage.innerHTML = "Catalog Id is Valid";
}
else
{
var validationMessage = document.getElementById("validationMessage");
validationMessage.innerHTML = "Catalog Id is not Valid";
} 6、 小结