4

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

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

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

它工作正常,你能帮我如何将两个 ajax 调用合二为一吗?

4

6 回答 6

14

使用ajax 返回的promise对象

var a1 = $.ajax({ 
    url : url, 
    dataType : 'json', 
    success : test2
})
.done(cb1)
.done(cb2);
a1.done(cb3);
于 2013-07-29T10:52:13.100 回答
6

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

 $.ajax({
   url : url,
   dataType : 'json',
   success : function(data){
      test1(data);
      test2(data);
   } 
});
于 2013-07-29T10:53:19.640 回答
3

您可以使用如下:

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

      } 
});
于 2013-07-29T10:57:14.730 回答
1

你可以这样做 -

$.ajax({
      url : url,
      dataType : 'json',
      success : function(data){
            test2(data);
            test1(data);
      } 
});
于 2013-07-29T10:52:24.083 回答
1

像这样

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

简单的。

或者如果你想要所有的论点,你可以更进一步

$.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 );
};
于 2013-07-29T10:53:45.443 回答
0

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

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

function myGlobalCallback(data) {
    cb1(data); 
    cb2(data);     
}
于 2013-07-29T10:51:35.117 回答