Javascript 扩展jquerypost函数

Javascript 扩展jquerypost函数,javascript,jquery,Javascript,Jquery,我的代码中有以下功能: $.post($form.attr('action'), $form.serializeArray()) .done(function (json) { } 据我从jQuery文档中了解,这是一条捷径。我想做的是改变,这样它允许我有一些函数在成功时执行,一些函数在错误时执行。这可能吗?我所看到的只是一个。完成了吗 $.ajax({ url: target, dataType: 'json',

我的代码中有以下功能:

        $.post($form.attr('action'), $form.serializeArray())
            .done(function (json) {
            }
据我从jQuery文档中了解,这是一条捷径。我想做的是改变,这样它允许我有一些函数在成功时执行,一些函数在错误时执行。这可能吗?我所看到的只是一个。完成了吗

$.ajax({
   url: target,
   dataType: 'json',
   type: 'POST',
   data: data,
   success: function(data, textStatus, XMLHttpRequest) { },
   error: function(XMLHttpRequest, textStatus, errorThrown) { }

实际上,您可以使用.success().error()和.complete()作为.post()-

的链接方法,因为,包括
$.post()
,返回一个对象,如果您不想使用完整的
$.ajax()
调用,可以使用

$.post(/* snip */).fail(function () {/* snip */});

那么为什么不能只使用
$.ajax()
?那没关系,但我真的不知道在ajax调用中把$form.attr('action'),$form.serializeArray()放在哪里。此外,如果可能的话,jQuery方法看起来确实更干净了。@marij
$。ajax()
仍然是jQuery方法:)。@marij
$。ajax()
是jQuery。事实上,当您使用
$.post()
“弃用注意事项:jqXHR.success()、jqXHR.error()和jqXHR.complete()回调在jQuery 1.8中将被弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()好吧,这对我来说是件好事。谢谢但我该如何编写这些代码呢?看来回调有点不同。我想我所说的我需要做的就是添加一个.fail并在该函数中输入错误代码,对吗?完成总是意味着成功吗?我读过这篇文章,但不理解延迟对象API的含义。