Jquery绑定Ajax请求全局错误处理不生效的问题技术
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 文件加载,支持同时加载多个哦,并且能够解除冲突。
暂无