IE11ХmlHttpRequestonreadystatechange和兼容性

时间:2013-12-25 13:24:05

标签: javascript ajax internet-explorer-11

我们在项目ajax中使用回调函数。 在11版之前的IE版本中,工作正常。 我们也使用

<meta http-equiv="X-UA-Compatible" content="IE=7" />

在IE 11中看起来像script.onreadystatechange和script.readyState重新添加了script.onload(http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx

现在在IE11中handleState不会调用。页面很冷。 试图将onreadystatechange更改为onload和xmlHttp = new ActiveXObject(“MSXML2.XMLHTTP.3.0”); to xmlHttp = new XMLHttpRequest();但它没有帮助。我想这没有用,因为我们使用兼容模式

我无法删除&lt; meta http-equiv =“X-UA-Compatible”content =“IE = 7”/&gt ;,因为此页面的许多功能在没有此代码的情况下会被破坏。

function callServer (request, xml, callback, callbackArgs) {
    try {
        //IE browser
    xh= new ActiveXObject("MSXML2.XMLHTTP.3.0");
    }
    catch (e) {
        //Firefox or Safari
        xh=new XMLHttpRequest();
    }

    try {
        xh.open("POST", request, true);

        xh.onreadystatechange  = function() { handleState(callback,callbackArgs); }; 
        xh.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
        xh.send(xml);
    } catch(e) {}

}

function handleState(callback, callbackArgs) {  
    if (xh.readyState == 4) {
        // call callback
    }
}

快速修复的想法?

0 个答案:

没有答案