我有一些Javascript JQuery代码,它每5分钟对服务器进行一次Ajax调用,以使服务器会话保持活动状态并让用户登录。我正在JQuery中使用$.ajax()方法。此函数似乎有一个“error”属性,我试图在用户的internet连接中断时使用该属性,以便KeepAlive脚本继续运行。我正在使用以下代码:
var keepAliveTimeout=1000*10;
函数keepSessionAlive()
{
$.ajax(
{
键入:“GET”,
网址:'http://www.mywebapp.com/keepAlive',
成功:功能(数据)
{
警惕(“成功”);
setTimeout(函数()
{
保持活力();
},保持超时);
},
错误:函数(XMLHttpRequest、textStatus、errorshown)
{
警报(“故障”);
setTimeout(函数()
{
保持活力();
},保持超时);
}
});
}
当我运行它时,我会每隔10秒在屏幕上的一个警报框中弹出“成功”,这很好。然而,当我拔下网络电缆时,我什么也没有得到,我希望调用错误函数并看到“失败”警报框,但什么也没有发生
假设“error”函数仅用于从服务器返回的非“200”状态代码,是否正确?在进行Ajax调用时,是否有方法检测网络连接问题
//开始代码段
错误:函数(XMLHttpRequest、textStatus、errorshown){
if(XMLHttpRequest.readyState==4){
//HTTP错误(可由XMLHttpRequest.status和XMLHttpRequest.statusText检查)
}
else if(XMLHttpRequest.readyState==0){
//网络错误(即连接被拒绝,由于CORS等原因而拒绝访问)
}
否则{
//奇怪的事情正在发生
}
}
//结束片段