开发者

Why is jQuery ajax success callback called on cancelled AJAX call?

I have a simple开发者_如何学Python AJAX jQuery command to update a shopping cart (triggered by a dropdown list box change):

 $.ajax({

    type: "POST",
    url: $.url("updateCart"),
    data: data,
    dataType: "json",

    success: function (data, status, req) {

       alert(data + " - " + status + " - " + req);

    });

It appears that in jQuery 1.4.x the calling behavior of the success callback changed.

If you submit an AJAX query and then click a 'regular' HTML Form submit button it will instantly send 'null' to the success callback. So for the above example if i trigger the AJAX event and then click a non-AJAX submit button - it displays an alert :

null - success - [object XMLHttpRequest]

Fiddler is verifying for me that the AJAX response has not yet come back from the server - yet the success method is called.

This was breaking some of my code because it expected data to exist.

I'm fine checking for null if I have to - I just cannot find any documentation on this change in jQuery.

So I'm wondering is this a bug or by design?


I think it's a bug and I filled a ticket in jQuery bug tracker for it. (http://dev.jquery.com/ticket/6172)

This bug does not exist in jQuery 1.4.0 and earlier.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜