jQuery - 如何在jQuery ajax中传递多个回调函数

时间:2013-07-29 10:49:30

标签: jquery ajax

在JS文件中有多个ajax调用,所以我想用多个回调函数调用一个AJAX调用。任何人都可以帮我调用多个AJAX调用。这里是测试代码,

$.ajax({
  url : url,
  dataType : 'json',
  success : test1(data)
});

$.ajax({
  url : url,
  dataType : 'json',
  success : test2(data)
}); 

工作正常,请你帮我解决我们如何在一个中调用两个ajax调用。

6 个答案:

答案 0 :(得分:13)

使用ajax返回的promise对象

var a1 = $.ajax({ 
    url : url, 
    dataType : 'json', 
    success : test2
})
.done(cb1)
.done(cb2);
a1.done(cb3);

答案 1 :(得分:6)

只需在一个成功函数中调用你的两个函数......

 $.ajax({
   url : url,
   dataType : 'json',
   success : function(data){
      test1(data);
      test2(data);
   } 
});

答案 2 :(得分:3)

您可以按照以下方式使用:

$.ajax({
      url : url,
      dataType : 'json',
      success : function(data){
                if(url=="xyz.php")
                     test2(data);
                else if(url=="abc.php")
                     test1(data);

      } 
});

答案 3 :(得分:1)

你可以这样做 -

$.ajax({
      url : url,
      dataType : 'json',
      success : function(data){
            test2(data);
            test1(data);
      } 
});

答案 4 :(得分:1)

喜欢这样

$.ajax({
  url : url,
  dataType : 'json',
  success : function( data ) {
     test1(data);
     test2(data);
  }
}); 

Simples。

如果您想要所有参数,可以更进一步

$.ajax({
  url : url,
  dataType : 'json',
  success : function() {
     test1.apply(null, arguments);
     test2.apply(null, arguments);
  }
}); 

你可以像这样使用它们

var test2 = function( data, status, jqXHR) {
    console.log( data, status, jqXHR );
};

答案 5 :(得分:0)

您可以轻松定义一个回调函数,您可以在其中调用多个函数。

$.ajax({ 
    url: url,
    dataType: 'json', 
    success: myGlobalCallback(data) 
});

function myGlobalCallback(data) {
    cb1(data); 
    cb2(data);     
}