感谢StackOverflow,我设法让以下代码完美运行,但我有一个跟进问题。
$.get('http://example.com/page/2/', function(data){
$(data).find('#reviews .card').appendTo('#reviews');
});
上面的代码使我的网站能够在WordPress中使用“加载更多”按钮获取第二页文章。但是,当网站用完页面/结果时,我遇到了一个小问题。加载更多按钮保持不变。即使没有剩余页面,它也会继续尝试获取数据。
我如何调整此命令,以便在.get
请求失败或是(404)未找到页面时显示可视响应?
如果有人可以通过一个简单的例子来帮助我,即使alert("woops!");
也很棒!
谢谢!
答案 0 :(得分:164)
$.get
没有为您提供设置错误处理程序的机会。您需要使用低级$.ajax
函数:
$.ajax({
url: 'http://example.com/page/2/',
type: 'GET',
success: function(data){
$(data).find('#reviews .card').appendTo('#reviews');
},
error: function(data) {
alert('woops!'); //or whatever
}
});
编辑2010年3月
请注意,使用jQuery 1.5中的新jqXHR
对象,您可以在调用$.get
后设置错误处理程序:
$.get('http://example.com/page/2/', function(data){
$(data).find('#reviews .card').appendTo('#reviews');
}).fail(function() {
alert('woops'); // or whatever
});
答案 1 :(得分:33)
如果您想要一般性错误,可以设置所有$.ajax()
($.get()
下面使用的{{}}}请求jQuery使用$.ajaxSetup()
显示错误,例如:
$.ajaxSetup({
error: function(xhr, status, error) {
alert("An AJAX error occured: " + status + "\nError: " + error);
}
});
在进行任何AJAX调用之前只运行一次(不更改当前代码,只需在某处之前粘贴)。这会将error
选项设置为默认到上面的处理程序/函数,如果您进行了完整的$.ajax()
调用并指定了error
处理程序,那么您拥有的将是什么覆盖以上。
答案 2 :(得分:13)
您可以使用responseText属性获取详细错误。
$.ajaxSetup({
error: function(xhr, status, error) {
alert("An AJAX error occured: " + status + "\nError: " + error + "\nError detail: " + xhr.responseText);
}
});
答案 3 :(得分:0)
您可以链接.fail()
回调以进行error响应。
$.get('http://example.com/page/2/', function(data){
$(data).find('#reviews .card').appendTo('#reviews');
})
.fail(function() {
//Error logic
})