如何在jQuery的load()方法中捕获错误

我使用jQuery的.load()方法来检索用户点击一个button时的一些数据。

加载成功完成后,我将结果显示在<div>

问题是,在检索数据时load()有时会发生错误。

如何在load()捕获错误?

load()文档。

只是关于如何加载错误发生的一点背景…

 $("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, function (responseText, textStatus, req) { if (textStatus == "error") { return "oh noes!!!!"; } }); 

编辑:添加注释请求的根path以外的path。

除了像ÓlafurWaage所说的那样向load()函数传递callback函数外,还可以注册“全局”error handling函数(在页面上的所有ajax函数的全局全局函数)。

至less有两种方法来注册全局Ajaxerror handling程序:

ajaxError()注册error handling程序:

 $.ajaxError(function(event, request, settings) { alert("Oops!!"); }); 

或者,使用ajaxSetup()同时设置error handling程序和其他属性:

 $.ajaxSetup({ timeout: 5000, error: function(event, request, settings){ alert("Oops!"); } }); 

load()提供了一个callback。

回电话。
ajax请求完成时调用的函数(不一定是成功的)。

这是如何完成IIRC。 (没有testing过)

 $("#feeds").load("feeds.php", {limit: 25}, function (responseText, textStatus, XMLHttpRequest) { // XMLHttpRequest.responseText has the error info you want. alert(XMLHttpRequest.responseText); }); 

电动工具箱有一篇名为“用jQuery AJAX加载内容并处理失败”的文章 ,看起来可以回答你的问题。

显然你指定的callback函数传递了响应,状态和XmlHttpRequest对象,允许你确定你的ajax请求的状态并相应地处理这个状态。