使用jQuery捕获丢失的连接或丢失的身份验证事件

使用jQuery捕获丢失的连接或丢失的身份验证事件,jquery,Jquery,我在这里读了几篇文章,这些文章启发了我的解决方案,但我想知道我的做法是否正确 我所做的是创建一个捕获jQuery ajax错误的事件: $('body').ajaxError(function(xmlHttpRequest, ajaxOptions, error) { if (!locked) CheckUserAuthentication(); }); 然后,CheckUserAuthentication通过另一个ajax调用访问一个Web服务,该服务尝试检查身份验证是否仍然处

我在这里读了几篇文章,这些文章启发了我的解决方案,但我想知道我的做法是否正确

我所做的是创建一个捕获jQuery ajax错误的事件:

$('body').ajaxError(function(xmlHttpRequest, ajaxOptions, error) {
       if (!locked) CheckUserAuthentication();
});
然后,CheckUserAuthentication通过另一个ajax调用访问一个Web服务,该服务尝试检查身份验证是否仍然处于活动状态。如果它返回一个需要重新登录的值,我会提示一个模式框,其中显示一个登录表单。如果ajax调用失败,那么可以安全地假设internet连接已丢失,因此我会提示另一个模式框,其中显示一条消息和一个js循环,每隔一段时间再次检查连接

我首先关心的是,如果上面的事件代码到达第二个ajax错误使其成为重复循环,那么它实际上会重复触发自身。因此,我创建了一个变量,该变量设置了一个布尔值,用于设置是否锁定事件以防止发生这种情况

我的问题是:

我做得对吗

2如果是,那么我是否可以处理一个ajax异常,这样我就不需要锁定.ajaxError事件以防止重新触发

3有没有其他比我现在做的更有效率的想法


我感谢所有的帮助

我已经实现了类似的东西

我为beforeSend设置jqueryajax选项,以发出Ajax请求,查看用户是否仍在登录。如果未登录,则使用HTTP基本身份验证

HTTP Basic Auth既丑陋又蹩脚,但在所有浏览器中都具有出色的模态属性,可以在尝试让用户登录时阻止原始Ajax事件死机

HTTP基本身份验证之后,原始Ajax事件将恢复


签出javascript源文件,它应该提供一些见解:

我已经实现了类似的东西

我为beforeSend设置jqueryajax选项,以发出Ajax请求,查看用户是否仍在登录。如果未登录,则使用HTTP基本身份验证

HTTP Basic Auth既丑陋又蹩脚,但在所有浏览器中都具有出色的模态属性,可以在尝试让用户登录时阻止原始Ajax事件死机

HTTP基本身份验证之后,原始Ajax事件将恢复

签出javascript源文件,该文件应提供一些细节: