如何在AJAX中使用.done()代替success:function()

3

我被告知success:function()已过时,应该使用.done()代替。然而,我不知道如何在我的ajax代码中正确地替换它。我相信这是一个简单的修复。

请您展示一下这段代码应该是什么样子?谢谢

$.ajax({
                type: "POST",
                url: "confirm.php",
                dataType:"text",
                data: {name: $('#name').val(), submitter: 'yes' },
                success: function(data)
           {
              $("#mainForm").hide();
             $('#thankYou').show();
           }

       })

1
$.ajax(...).done(function(data) { ... })。您可以在文档中找到示例:https://api.jquery.com/jquery.ajax/ - Felix Kling
2个回答

4

success属性并未被弃用,因此无需更改代码。这是一个误解,源于jqXHR.success方法已被弃用。

不过,您可以使用done方法来实现相同的功能:

$.ajax({
  type: "POST",
  url: "confirm.php",
  dataType:"text",
  data: {name: $('#name').val(), submitter: 'yes' }
}).done(function(data) {
  $("#mainForm").hide();
  $('#thankYou').show();
});

2

done函数在jQuery中被链式调用,它的形式如下:

$.ajax(
 //ajax stuffs
 ...
 ...
).done(function(){
 // after ajax completion
});

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