asp ajax 例子
var xml_http_building_link = '请等待,正在建立连接...';
var xml_http_sending = '请等待,正在发送数据...';
var xml_http_loading = '请等待,正在接受数据...';
var xml_http_load_failed = '通信失败,请刷新后重新尝试...';
var xml_http_data_in_processed = '通信成功,数据正在处理中...';
function Ajax(statusId, recvType) {
var aj = new Object();
if(document.getElementById(statusId)) {
aj.statusId = document.getElementById(statusId);
} else {
var divElement = document.createElement("DIV");
divElement.className = "xspace-ajaxmsg";
divElement.style.position = "fixed";
divElement.style.right = "0";
divElement.style.top = "0";
divElement.style.background = "red";
divElement.style.color = "#FFF";
divElement.style.lineHeight = "2em";
divElement.style.padding = "0 20px";
divElement.id = statusId;
document.body.appendChild(divElement);
aj.statusId = divElement;
}
aj.targetUrl = '';
aj.sendString = '';
aj.recvType = recvType ? recvType : 'HTML';//HTML XML
aj.resultHandle = null;
aj.createXMLHttpRequest = function() {
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
if(request) {
return request;
}
} catch(e) {
//alert(e.message);
}
}
}
return request;
}
aj.XMLHttpRequest = aj.createXMLHttpRequest();
aj.processHandle = function() {
aj.statusId.style.display = '';
if(aj.XMLHttpRequest.readyState == 1) {
aj.statusId.innerHTML = xml_http_building_link;
} else if(aj.XMLHttpRequest.readyState == 2) {
aj.statusId.innerHTML = xml_http_sending;
} else if(aj.XMLHttpRequest.readyState == 3) {
aj.statusId.innerHTML = xml_http_loading;
} else if(aj.XMLHttpRequest.readyState == 4) {
if(aj.XMLHttpRequest.status == 200 || aj.XMLHttpRequest.status==0) {
aj.statusId.style.display = 'none';
if(aj.recvType == 'HTML') {
//alert("3");
aj.resultHandle(aj.XMLHttpRequest.responseText);
} else if(aj.recvType == 'XML') {
//alert("XML");
aj.resultHandle(aj.XMLHttpRequest.responseXML);
}
} else {
//aj.statusId.innerHTML = xml_http_load_failed;
aj.statusId.innerHTML = aj.XMLHttpRequest.status;
}
}
}
aj.get = function(targetUrl, resultHandle) {
aj.targetUrl = targetUrl;
aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
aj.resultHandle = resultHandle;
if(window.XMLHttpRequest) {
aj.XMLHttpRequest.open('GET', aj.targetUrl);
aj.XMLHttpRequest.send(null);
} else {
aj.XMLHttpRequest.open("GET", targetUrl, true);
aj.XMLHttpRequest.send();
}
}
aj.post = function(targetUrl, sendString, resultHandle) {
aj.targetUrl = targetUrl;
aj.sendString = sendString;
aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
aj.resultHandle = resultHandle;
aj.XMLHttpRequest.open('POST', targetUrl);
aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
aj.XMLHttpRequest.send(aj.sendString);
}
return aj;
}
具体的调用:
var key1=document.forms[0].userName.value;
var key2=document.forms[0].userPwd.value;
var key3=document.forms[0].userValidate.value;
var comeUrl =document.forms[0].comeUrl.value;
var xStr = "key1="+ key1 +"&key2=" + key2 +"&key3=" + key3 +"&key4=logs";
var xlogs = new Ajax('loginshow', 'HTML');
xlogs.post('/useinfo/checklogin.asp',xStr,function(s){
if (s == 2 || s == 1 || s == 0){
if (s == 2){
msg = "<span style='color:Red;font-family:verdana;font-size:9pt;'>用户名或密码错误 </span><span>请重新输入。</span>";
}else if( s == 1){
msg = "<span style='color:Red;font-family:verdana;font-size:9pt;'>验证码错误 </span><span>必须是4位数字或字母,忽略大小写。</span>";
}else if( s == 0){
msg = "<span style='color:Red;font-family:verdana;font-size:9pt;'>参数出错 </span><span>可能有参数为空,或者含有<a href='#' title='为防止非法注入字符含有单引号,and,exec,insert,select,delete,update,chr,mid,master,truncate,char,declare等字符我们都视为非法'>非法字符</a></span>";
}
changeValidate();
document.forms[0].userValidate.value = "";
document.forms[0].userPwd.value ="";
xlogs.statusId.style.display = 'block';
xlogs.statusId.innerHTML = msg;
}else{
if (s == 256){
msg = "<span style='color:#008000;font-family:verdana;font-size:9pt;'>登陆成功, <span id='last_time'>2 </span>秒后自动跳转...</span>";
document.forms[0].userName.value = "";
document.forms[0].userPwd.value ="";
document.forms[0].userValidate.value ="";
xlogs.statusId.style.display = 'block';
xlogs.statusId.innerHTML = msg;
countDown(2,comeUrl);
}
}
}
);
//secs秒后跳转到surl
function countDown(secs,surl){
document.getElementById("last_time").innerText=secs;
if(--secs>0){
setTimeout("countDown("+secs+",'"+surl+"')",1000);
}else{
window.location.href=surl;
}
}
浙公网安备 33010602011771号