jQuery .done没有触发$ .post请求

时间:2014-06-23 20:18:16

标签: javascript jquery ajax post

首先,这是我的示例代码:

$.post( "test.php", { testdata : "signal" },
            function( data ) { alert( "Nested function" )})
 .done( function () { alert( "Done function" )});

我试图让.done为我完成一些事情,但事情并不重要。无论我是否将函数直接嵌套在$.post参数中,它都不会触发。检查Chrome上的控制台是否显示错误为Uncaught TypeError: undefined is not a function

玩弄线条和错误报告向我显示,.done肯定会抛出错误,而只是将.done直接移到$.post之后1}}关闭paren isn有效。

我看到了另一个similar question,但它是为了$ .ajax,并且我试图实施他们建议的链接,如上所述,没有效果。我错过了什么?

编辑:jQuery版本为1.4.4,。。post成功返回数据,而.always也失败。

2 个答案:

答案 0 :(得分:1)

改为使用.complete

$.post("test.php", { testdata : "signal" }, function () { 
        alert("Nested function"); })
    .complete(function () { alert("Done function"); });

fiddle

答案 1 :(得分:0)

因此,经过调查,并且由于Jonathan Lonowski,algorhythm和War10ck的评论,我发现了解决方案。

我运行的jQuery版本1.4.4不支持.done,.fail,.always或.complete *方法。要在成功后触发事件,我需要遵循以下内联格式:

$.post( url [, data ] [, success ] [, dataType ] )

...在网址后插入通常会进入.done的函数。这就是我在原始示例中使用嵌套函数所做的事情,只是要求我删除.done函数。

谢谢大家。

* .complete在最新的jQuery版本中也已弃用。不要使用它。