如何在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请求的状态并相应地处理这个状态。