javascript - Ajax 完成后调用另一个 Ajax 函数

标签 javascript jquery ajax

var App = {
actionRequest: function (url,data,callback){
    var that = this;
    $('#menu').panel('close');
    $.mobile.loading('show');
    $.when(

        $.ajax({
            method: 'POST',
            url: url + '?' + new Date().getTime(),
            data: data
        })            

    ).done(function(data,html) {        
            that.refreshCart();
            $.mobile.loading('hide');               
        }

    );
}

refreshCart: function(){        
    App.loadExternalContent('content','scripts/data_ajax.php','action=getCart','templates/cart.htm');
    }
}

我需要在“.done”中调用refreshCart。我如何在“.done”中编写回调函数来执行此操作?抱歉,我是 Ajax 新手。

最佳答案

var object = {
  actionRequest: function(url, data, callback) {
    $('#menu').panel('close');
    $.mobile.loading('show');
    $.ajax({
      method: 'POST',
      url: url + '?' + new Date().getTime(),
      data: data
    }).done(function(data, html) {
        if ($.isFunction(callback)) {
          callback();
        }
        $.mobile.loading('hide');
      }
    );
  }
}

用法:

如果 refreshCart 是对象中的函数,您也可以执行以下操作:

var object = {
    actionRequest: function(url, data, callback) {
      var that = this;

      $('#menu').panel('close');
      $.mobile.loading('show');
      $.ajax({
            method: 'POST',
            url: url + '?' + new Date().getTime(),
            data: data
          }).done(function(data, html) {
              // without using a callback
              that.refreshCart();
              $.mobile.loading('hide');
            }

          );
        },
        refreshCart: function() {
          App.loadExternalContent('content', 'scripts/data_ajax.php', 'action=getCart', 'templates/cart.htm');
        }
    }

这里是如何使用ajax请求的示例

$.ajax({
    url: 'http://echo.jsontest.com/title/ipsum/content/blah',
    method: 'GET'
  })
  .done(function(response) {
    console.log(response);
  })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - Ajax 完成后调用另一个 Ajax 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590096/

相关文章:

javascript - 使用javascript启用提交按钮

javascript - 将 api 响应推送到 .map() 中的全局变量以某种方式使数据无法访问

jquery - Bootstrap 日期选择器选项似乎不起作用(vitalets 的日期选择器)

php - 在 ajax 响应文本中发送 json 字符串和 html 数据 - 如何?

jquery - mvc ajax 中的注销 View

ruby-on-rails - rails : Is it neccessary to wrap my POST response in a respond_to block?

javascript - 基于数组过滤对象的属性。并获取过滤后的对象

javascript函数删除html部分

javascript - Angular 下拉指令

javascript - 解析http响应内容字符串