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); } });