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