LMLPHP后院

Jquery绑定Ajax请求全局错误处理不生效的问题技术

maybe yes 发表于 2016-04-09 16:34

JQuery 拥有强大的 Ajax 功能如果网站系统设计足够好,必须有个地方处理全局请求错误处理的,如果每个请求发生错误都单独处理,那是非常可怕的, 设计全局错误处理是非常重要的。

看 JQ 的官方文档,提供了 ajaxError 的错误处理方法,该方法Jquery 比较新的后续版本中只支持绑定在 document 上了。看官方文档给人的感觉是,你只能使用 ajax 才能有效,什么 get,post, getJson, getScript 等都不一定会生效,如果想不被全局错误处理干扰,可以设置 global:false。

使用 ajax 方法请求后,如果全局错误处理方法没有被触发,问题可能在哪里呢?下面列举几种可能,实在没撤,只能下载源码来调试啦。

1:下载版本 1.9 以上的 JQuery 版本。

2:事件绑定在 Ajax 请求回调之前。如下:

$(document).ajaxError(function(event, jqxhr, settings, thrownError){
    // error handler
});

3:服务端返回的状态码必须在 (200-300 除去 304) 之外。

4:最重要的就是这一条啦,检查您的项目有没有加载了多个 JQuery,或者多个不同的版本的 JQuery。

针对第四条,如果您的项目确实加载了多个。推荐使用 LMLJS 来管理您的 WEB 项目的 Js 文件加载,支持同时加载多个哦,并且能够解除冲突。

2024-04-25 01:42:53 1713980573 0.027072