IE9 - 检查服务器连接状态

时间:2014-09-19 10:14:10

标签: ajax connection xmlhttprequest internet-explorer-9

有没有办法在IE9的ajax调用中检查服务器的连接状态?

我在支持XHR的浏览器中使用它:

AJS.$.ajax({
    url : "path_to_server",
    type : 'DELETE',
    async:false,
    data:JSON.stringify(resquestData)
}).done(function(){
    doSomething();
}).fail(function(response,textStatus, xhr){
    if(xhr.code == 19){ // where i check if it is a NetworkError
      alert("connection lost");
    }else{
        alert("error");
    }
}
);

我的问题是我无法使这个解决方案在IE9(或更低版本)中运行,因为浏览器不支持xhr(XmlHttpRequest)。任何解决方案?

祝你好运

[编辑]

我尝试在ajax函数之前创建一个ActiveX对象:

AJS.$("#import").click(function() {
    var xmlhttpie;
    if (window.ActiveXObject) {
        try {
            xmlhttpie = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttpie = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                xmlhttpie = false;
            }
        }
    }
     AJS.$.ajax({
       url : "path_to_server",
       type : 'DELETE',
       async:false,
       data:JSON.stringify(resquestData)
     }).done(function(){
           doSomething();
     }).fail(function(response,textStatus, xhr){
           if(xhr.code == 19){ // where i check if it is a NetworkError
             alert("connection lost");
           }else{
              alert("error");
           }
    }
);
}

但是当在IE9中进行调试(在Ajax函数内部)时我会得到这个(其中" A"是xmlhttpie):

link - > http://prntscr.com/4o9grh

1 个答案:

答案 0 :(得分:1)

只需在你的ajax调用中输入一个url并检查它返回的内容。

$.ajax('url', {
  statusCode: {
    404: function() {
      alert('Not connected to server');
    },
    200: function() {
      alert('Connected');
    }
  }
});

希望这有帮助。