我有这段代码,它在 FireFox、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 之外的任何其他浏览器中运行代码时,输出会显示所有警告框,从以下位置开始: - Entered Login() - Entered State Changed Login - Entered GetEmailId() - Enter State Changed Login 2
然后窗口位置变为http://server.com/profile.html
但是当我在 IE 6 或 7 上运行同样的东西时,代码不会进入 statechangedLogin2(),所以我在这里得到的唯一警告是:
* Entered Login()
* Entered State Changed Login
* Entered GetEmailId()
我无法弄清楚为什么会出现此问题。为什么会这样,我应该改变什么?该项目在其他浏览器(包括 IE8)上运行良好。
谁能帮我解决我的这个问题。
最佳答案
您好,很抱歉再次发布我的问题。但是我在那里没有得到任何解决方案,所以我尝试这样做。你我很抱歉。
无论如何,我在老板的帮助下解决了这个问题。
我所做的只是为 GetEmailId 函数提供它自己的 session 。像这样:
函数 GetEmailId()
{ alert("输入了 GetEmailId()"); xmlhttpTwo=GetXmlHttpObject() var url="http://server.com/GetPostEmail.php"; url=url+"&sid="+Math.random(); xmlhttpTwo.onreadystatechange=statechangedLogin2; xmlhttpTwo.open("GET", url, true); xmlhttpTwo.发送(空);
我试过了,它在 IE 6 n 7 上运行得非常好......:)
最佳齐山
关于javascript - 在 IE6 和 IE7 中使用 AJAX 调用的问题——我再次问同样的问题,因为我之前没有得到任何解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229821/