jQuery .get错误响应函数?

感谢StackOverflow,我设法得到了以下代码完美工作,但我有一个后续问题。

$.get('http://example.com/page/2/', function(data){ $(data).find('#reviews .card').appendTo('#reviews'); }); 

上面的代码使我的网站能够在WordPress中使用加载更多button来获取第二页文章。 但是,当网站用完页面/结果时,我遇到了一个小问题。 加载更多button保持原位。 即使没有剩余页面,它也会继续尝试获取数据。

我怎样才能调整这个命令,以便我可以显示一个可视化的响应如果.get请求失败或是一个(404)找不到页面的实例?

如果有人能帮助我一个简单的例子,即使是一个alert("woops!"); 那将是真棒!

谢谢!

$.get不给你机会来设置error handling程序。 您将需要使用底层的$.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 } }); 

编辑三月'10

请注意,使用jQuery 1.5中的新jqXHR对象,可以在调用$.get后设置error handling程序:

 $.get('http://example.com/page/2/', function(data){ $(data).find('#reviews .card').appendTo('#reviews'); }).fail(function() { alert('woops'); // or whatever }); 

如果你想要一个通用的错误,你可以设置所有$.ajax()$.get()使用的下面)请求jQuery使用$.ajaxSetup()显示错误,例如:

 $.ajaxSetup({ error: function(xhr, status, error) { alert("An AJAX error occured: " + status + "\nError: " + error); } }); 

在进行任何AJAX调用之前,只需运行一次(不改变你当前的代码,只是在某个地方坚持这个)。 如果你完成了$.ajax()调用并指定了error处理程序,那么你可以将error选项设置为默认的上述处理程序/函数,那么你将覆盖上述内容。

你可以通过使用responseText属性来获得详细的错误信息。

 $.ajaxSetup({ error: function(xhr, status, error) { alert("An AJAX error occured: " + status + "\nError: " + error + "\nError detail: " + xhr.responseText); } });