javascript - 在 IE6 和 IE7 中使用 AJAX 调用的问题——我再次问同样的问题,因为我之前没有得到任何解决方案

标签 javascript ajax internet-explorer cross-browser

我有这段代码,它在 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/

相关文章:

javascript - 如何在javascript中排除正则表达式中的某些单词?

javascript - Node Js 错误 Module.js 549

javascript - CSS :after and click function

javascript - fetch 原生支持多文件上传吗?

jquery - 如何将jquery Mustache应用到外部文件/模板

ruby-on-rails - Rails remotipart gem,如何绑定(bind)到 ajax "progress"事件

internet-explorer - 您将如何在 IE 中为这种倾斜的 DIV 导航设置 CSS3 回退?

css - Internet Explorer 表格滚动

jquery - IE jquery click 仅适用于 li 中的文本,不适用于整个框

javascript - 文本自动字体大小