有没有办法在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
答案 0 :(得分:1)
只需在你的ajax调用中输入一个url并检查它返回的内容。
$.ajax('url', {
statusCode: {
404: function() {
alert('Not connected to server');
},
200: function() {
alert('Connected');
}
}
});
希望这有帮助。