【发布时间】:2010-02-25 04:02:38
【问题描述】:
我有一个简单的 AJAX jQuery 命令来更新购物车(由下拉列表框更改触发):
$.ajax({
type: "POST",
url: $.url("updateCart"),
data: data,
dataType: "json",
success: function (data, status, req) {
alert(data + " - " + status + " - " + req);
});
似乎在 jQuery 1.4.x 中,success 回调的调用行为发生了变化。
如果您提交 AJAX 查询,然后单击“常规”HTML 表单提交按钮,它将立即向成功回调发送“null”。因此,对于上面的示例,如果我触发 AJAX 事件然后单击非 AJAX 提交按钮 - 它会显示一个警报:
null - success - [object XMLHttpRequest]
Fiddler 正在为我验证 AJAX 响应尚未从服务器返回 - 但调用了 success 方法。
这破坏了我的一些代码,因为它期望数据存在。
如果需要,我可以检查 null - 我只是找不到任何关于 jQuery 中此更改的文档。
所以我想知道这是一个错误还是设计使然?
【问题讨论】:
-
查看通常触发 ajax 函数的事件处理程序会很有帮助。
-
@anthony 真的没关系。它只是一个下拉更改事件。如果没有人立即对此有答案,我将创建一个适当的示例项目,但如果它是一个明显的已知错误或设计,我宁愿不花更多时间在它上面。谢谢