在用户登录的过程中,运用了AJAX技术,但是在创建XMLHTTPRequest对象时,客户端的IE如果是IE7.0就不成功。部分代码如下:
<script language="javascript">
var xmlHttp;
function createXMLHTTPRequest()
{
if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest;//Mozilla浏览器
}
else if (window.ActiveXObject)
{
try
{
xmlHttp = new window.ActiveXObject("Msxml2.XMLHTTP");//IE的老版本
}
catch(e)
{}
try
{
xmlHttp = new window.ActiveXObject("Microsoft.XMLHTTP");//IE的新版本
}
catch(e)
{}
}
if (typeof(xmlHttp) == "undefined")
{
alert("不能创建XMLHttp对象实例!");
return false;
}
}
function checkLogin()
{
if (document.getElementById("userName").value == "")
{
document.getElementById("WrongTips").innerHTML = "<font color=red>用户名不能为空!</font>";
//alert("用户名不能为空!");
return false;
}
if (document.getElementById("userPWD").value == "")
{
document.getElementById("WrongTips").innerHTML = "<font color=red>密码不能为空!</font>";
//alert("密码不能为空!");
return false;
}
createXMLHTTPRequest();//创建XMLHTTPRequest对象
var url = "login.aspx?userName=" + document.getElementById("userName").value +"&userPWD=" + document.getElementById("userPWD").value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = handleState;//回调函数
xmlHttp.send(null);
}
function handleState()
{
if (xmlHttp.readystate < 4)
{
document.getElementById("WrongTips").innerHTML = "正在登录,请稍候……";
}
if (xmlHttp.readystate == 4)//判断对象状态
{
if (xmlHttp.status == 200)//信息成功返回,开始处理信息
{
//得到返回的信息
if (xmlHttp.responseText == "true")
{
//登录成功
location.href = "index.aspx";
}
else
{
//用户名或密码错误
document.getElementById("WrongTips").innerHTML = xmlHttp.responseText;
}
}
}
}
</script>
奇怪,按道理,在判断IE版本的时候,使用window.ActiveXObject("Microsoft.XMLHTTP")应该就是对应的IE新版本啊,而且在IE6.0下可以正常使用。郁闷,明天来解决这个问题。
转载于:https://www.cnblogs.com/bobomouse/archive/2007/06/12/781083.html