我有一个简单的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中找不到有关此更改的任何文档。
所以我想知道这是一个错误还是设计?
答案 0 :(得分:1)
我认为这是一个错误,我在jQuery bug跟踪器中填写了一张票。 (http://dev.jquery.com/ticket/6172)
jQuery 1.4.0及更早版本中不存在此错误。