代码之家  ›  专栏  ›  技术社区  ›  Felipe

IE 8中的Ajax不一致?

  •  0
  • Felipe  · 技术社区  · 16 年前

    这是我的密码:(更确切地说,是其中的不可靠部分)

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        var requisicao=new XMLHttpRequest();
    } else {
        var requisicao=new ActiveXObject("Microsoft.XMLHTTP");
    }
    

    好啊。有时候这很好,但是有时候IE中的javascript调试器告诉我:

    对象不支持此属性或方法model.js第59行字符3

    相当于……

    var requisicao=new XMLHttpRequest();
    

    让我恼火的是,有时候IE8接受了这一点并继续前进,但有时候它会窒息而不起作用?

    欢迎任何帮助

    提前谢谢

    1 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    编辑: 显然,在这种情况下,Internet Explorer的行号是正确的。这似乎是Internet Explorer 8的常见问题。这里有一个潜在的解决方案: Ajax app works in some browers, not others .

    以下是代码的相关部分:

    try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) { try { xmlhttp = new XMLHttpRequest(); }
    catch (e) { xmlhttp = false; }}}
    

    不幸的是,Internet Explorer的行号并不总是准确的,因为它们是基于代码本身的内部序列化。错误消息可能来自另一行(希望在第59行附近)。

    我将检查您调用对象上的方法的位置,该方法可以基于任何原因设置为不同的值。