我正在使用jQuery的.load()
方法在用户点击按钮时检索一些数据。
加载成功完成后,我会在<div>
。
问题是,有时检索数据时load()
会发生错误。
如何在load()
中发现错误?
答案 0 :(得分:75)
关于加载错误如何发生的一点背景......
$("body").load("/someotherpath/feedsx.pxhp", {limit: 25},
function (responseText, textStatus, req) {
if (textStatus == "error") {
return "oh noes!!!!";
}
});
编辑:根据评论的请求添加了根路径以外的路径。
答案 1 :(得分:11)
除了像ÓlafurWaage所建议的那样将回调传递给load()函数之外,您还可以注册“全局”错误处理程序(全局为页面上所有ajax调用的全局)。
至少有两种方法可以注册全局Ajax错误处理程序:
使用ajaxError()
注册错误处理程序:
$.ajaxError(function(event, request, settings) {
alert("Oops!!");
});
或者,使用ajaxSetup()
同时设置错误处理程序和其他属性:
$.ajaxSetup({
timeout: 5000,
error: function(event, request, settings){
alert("Oops!");
}
});
答案 2 :(得分:5)
load()提供回调。
回调。
当ajax请求完成时调用的函数(不一定成功)。
这就是IIRC的做法。 (尚未测试过)
$("#feeds").load("feeds.php", {limit: 25},
function (responseText, textStatus, XMLHttpRequest) {
// XMLHttpRequest.responseText has the error info you want.
alert(XMLHttpRequest.responseText);
});
答案 3 :(得分:0)
电动工具箱有一篇名为"Loading content with jQuery AJAX and dealing with failures"的文章似乎可以回答您的问题。
显然,您指定的回调函数会传递响应,状态和XmlHttpRequest对象,从而可以确定ajax请求的状态并相应地处理条件。