【发布时间】:2014-06-23 20:18:16
【问题描述】:
首先,这是我的示例代码:
$.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 的关闭括号之后是无效的。
我看到了另一个similar question,但它是针对$.ajax 的,我已经尝试实现他们建议的链接,如上所述,但没有效果。我错过了什么?
编辑:jQuery版本是1.4.4,.post成功返回数据,.always也失败。
【问题讨论】:
-
您是否在文档就绪函数中并确定 jQuery 库已成功加载?您使用的是什么版本的 jQuery?帖子是否可能失败并且您正在进入失败回调?你能在 always 回调中记录一些东西吗?
-
这里似乎可以正常工作jsfiddle.net/2LgMg
-
我使用的是 jQuery 1.4.4。发布成功并返回数据。
.always也拒绝开火。 -
@EmmettR。 Deferreds 和 related methods 是在 jQuery 1.5 中添加的。您需要升级才能使用
.done()、.always()等。 -
在 1.4.4 版本中尝试属性
success像这样$.post("test.php", { testdata: "signal", success: function(data) {}});
标签: javascript jquery ajax post