// Assign handlers immediately after making the request, and remember the jqxhr object for this request.
var jqxhr = $.post("example.php", function() {
alert("success");
})
.done(function() {
alert("second success");
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});
});
// Your other code here.
// Set another completion function for the request above.
jqxhr.always(function() {
alert( "second finished" );
});
4条答案
按热度按时间dpiehjr41#
在post之后立即定义错误回调。请注意分号仅在结尾处放置。
http://api.jquery.com/deferred.fail/
**对于旧版本的jQuery(pre-1.8)**使用.error代替相同的语法。
ulmd4ohb2#
有几种方法可以做到这一点,但是如果您没有通过返回的JSON数据对象获得可用的错误响应,您可以使用$.ajaxSetup()通过jQuery为 *all AJAX 调用定义默认值。即使
$.post()
方法本身没有指定错误处理程序或回调,$.ajaxSetup()
方法也会捕获任何 AJAX 错误并执行您为其定义的函数。或者,还有一个$.ajaxError()函数可以做同样的事情。
请注意,如果您的JSON响应正确返回,但带有服务器端错误代码,则这将不起作用。如果希望捕获这类情况,最好使用$.ajaxComplete()方法查找它们
u3r8eeie3#
你可以这样做:
$.post文档:https://api.jquery.com/jquery.post/
ijnw1ujt4#
您可以使用
$.ajax()
($.post
是一个快捷方式,最终无论如何都会调用它),并定义错误回调。或者,如果你真的不想这样做,打电话
在此之前
$.post