jQuery.ajax中success参数的弃用?

28

今天我听说jQuery.ajax函数中的success参数已被弃用。我理解得对吗?还是我误解了什么?

例如,将来这样做将不起作用:

 $.ajax({

            url: 'ax_comment.php',              
            type: 'POST',
            data: 'mode=view&note_id='+noteid+'&open='+open+'&hash='+hash,
            success: function(a) {
            ...

            }   

    });

我必须使用这个吗?

$.ajax({

            url: 'ax_comment.php',

            type: 'POST',
            data: 'mode=view&note_id='+noteid+'&open='+open+'&hash='+hash,
            success: function(a) {
            ...

            }   

    }).done(function(a){.....};

来源:http://api.jquery.com/jQuery.ajax/(向下滚动至Deprecation Notice


是的,你需要使用.done()。Jquery仍然会保留这个功能,直到他们决定放弃它为止 :) - karthikr
6
参数并没有被弃用,成功方法(success method)才被弃用了。你可以继续使用 success: function,请仔细阅读一遍。 - Kevin B
2个回答

70

在Ajax成功的回调函数中,有一个区别:

$.ajax({}).success(function(){...});

以及Ajax成功的本地回调事件(即Ajax参数和属性):

$.ajax({
    success: function(){...}
});

成功回调方法(第一个示例)已被弃用。然而,成功本地事件(第二个示例)并没有。

本地事件是Ajax属性(即参数)。jQuery文档进一步解释说,本地事件 是您可以在Ajax请求对象内订阅的回调

因此,在将来,您可以执行以下任一操作:

$.ajax({}).done(function(){...});
或者
$.ajax({
    success: function(){...}
});

0

是的,在jQuery 1.8及以后版本中已被弃用。您应该使用.done()并使用.fail()来捕获错误。

$.ajax({
    url: 'URL',
    type: 'POST',
    data: { // Your Data },
    datatype: 'json'
})
.done(function (data) { // AJAX Success })
.fail(function (jqXHR, textStatus, errorThrown) { // AJAX Failure });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接