我有这样的代码,这是工作的罚款,火狐,Chrome和IE8,但它是不工作的IE6和IE7。
function GetXmlHttpObject() {
//var xmlHttp = null;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
function login()
{
alert("Entered Login()");
var url="http://server.com/ALUauth.php";
xmlhttp.onreadystatechange=statechangedLogin;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechangedLogin()
{
if(xmlhttp.readyState==4)
{
alert("Entered State Changed Login");
if (xmlhttp.responseText=="Please <a href=http://server.com/ALUauth.php?login>login</a>")
{
document.getElementById("ALUauth").innerHTML=xmlhttp.responseText;
}
else
{
GetEmailId();
}
}
}
function GetEmailId()
{
alert("Entered GetEmailId()");
var url="http://server.com/GetPostEmail.php";
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=statechangedLogin2;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechangedLogin2()
{
if(xmlhttp.readyState==4)
{
alert("Enter State Changed Login 2");
if(xmlhttp.responseText=="Login again")
{
window.location="http://server.com/profile.html";
}
}
}
当我运行在任何其他浏览器的代码,除了IE6和7的输出显示我所有的警告框从开始: - 输入的登录() - 进入状态改变登录 - 进入GetEmailId() - 输入状态改变登录2
然后在窗口位置改变到http://server.com/profile.html
但是当我运行的IE 6或7同样的事情,代码不进入statechangedLogin2(),因此只提醒我来到这里是:
* Entered Login()
* Entered State Changed Login
* Entered GetEmailId()
我无法弄清楚,为什么这个问题正在发生。 为什么会发生,我应该怎么改? 该项目的工作绝对没问题在其他浏览器IE8包括。
可有一个人帮助我我的这个问题。