首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在AJAX调用中使用success()或complete()

在AJAX调用中使用success()或complete()
EN

Stack Overflow用户
提问于 2009-06-20 06:09:25
回答 2查看 172.4K关注 0票数 63

我想从complete()方法的角度来理解下面的AJAX调用;

当我用success()替换complete()时,我得到一个空的responseText,就像AJAX error()方法一样。

另一方面,当我保留complete()方法的原样时,一切都会按预期工作。

是不是success()complete()更早返回

代码语言:javascript
复制
$("#formnaw").submit(function() {
  var fnc = invoerFnc.attr("value");
  var vnaam = invoerVnaam.attr("value");
  var anaam = invoerAnaam.attr("value");
  var str1 = invoerStr1.attr("value");
  var nr1 = invoerNr1.attr("value");
  var pc1 = invoerPc1.attr("value");
  var pl1 = invoerPl1.attr("value");
  var tel1 = invoerTel1.attr("value");
  var mob1 = invoerMob1.attr("value");
  var em1 = invoerEm1.attr("value");
  var goknop = $("#formnaw > .instelling_go");
  //we deactiveren de submit knop tijdens het verzenden 
  goknop.attr({
    disabled: true
  });
  goknop.blur();
  //stuur de post variabelen naar livetabs.php
  $.ajax({
    type: "POST",
    url: "registraties/instellingenact.php",
    data: "actie=wijzignaw&vnaam=" + vnaam + "&anaam=" + anaam + "&functie=" + fnc + "&straat=" + str1 + "&nr=" + nr1 + "&postcode=" + pc1 + "&plaats=" + pl1 + "&tel=" + tel1 + "&mob=" + mob1 + "&email=" + em1,
    timeout: 5000,
    success: function(data, textStatus) {
        alert('bij success');
        //doe iets
      } //EINDE success
      ,
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        if (textStatus == 'timeout') {
          //doe iets
        } else if (textStatus == 'error') {
          //doe iets
        }
        //her-activeer de zend knop
        goknop.attr({
          disabled: false
        });
      } //EINDE error
      ,
    complete: function(data) {
        updatelijst.append(data.responseText + "<br>");
        if (data.responseText.indexOf("Fout") != -1) {
          $('#formnaw').find('td.foutnr1').prepend(data.responseText);
        } else {
          updatelijst.animate({
            opacity: 'show'
          }, 1000, function() {});
        }
        //her-activeer de zend knop
        goknop.attr({
          disabled: false
        });
      } //EINDE complete
  }); //EINDE ajax
  //we stoppen het standaard gedrag van een submit, zodat de pagina niet wordt vernieuwd.
  return false;
});
EN

回答 2

Stack Overflow用户

发布于 2009-06-20 06:15:48

当ajax调用完成时,会执行"complete“。当ajax调用以成功的响应代码结束时,将执行"success“。

票数 12
EN

Stack Overflow用户

发布于 2020-04-09 20:13:18

从隔离的角度来说,$.ajax中的complete()就像try catch块中的finally

如果您在任何编程语言中使用try catch块,那么无论您是否成功地执行了一件事,或者在执行过程中遇到了错误,这都无关紧要。finally{}块将始终被执行。

$.ajax中的complete()也是如此,无论你得到的是success() response还是error(),一旦执行完成,complete()函数总是会被调用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1021062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档