如何将变量从ajax函数传递给另一个ajax函数?

我想知道如何将值从ajax函数传递给另一个ajax我已经尝试过这段代码,但它不起作用。 任何人都知道如何以正确的方式做到这一点? 谢谢!

$("#button").click(function(){ var passedValue = ''; $.ajax({ url:// type:// success:function(data){ if(typeof==="object"){ for(var i=0;i<data.length;i++){ passedValue = data[i]["passedThis"]; } } } }); $.ajax({ data: { receivedPassed: passedValue;} }); }); 

这些请求是异步的,因此在发送第二个请求时, passedValue还没有准备好。 您可能希望按顺序发送它们:

 $("#button").click(function() { $.ajax({ url: // type: // success: function(data) { var passedValue; if(typeof (?) === "object") { for(var i = 0; i < data.length; i++) { passedValue = data[i]["passedThis"]; } $.ajax({ data: { receivedPassed: passedValue } }); } } }); }); 

此外,每次通过该循环时,您都会覆盖passedValue 。 你的意思是+=而不是= ,或者使用数组,还是什么?

使用.pipe()链接AJAX调用,并使用.pipe()从第一次调用过滤数据到第二次调用:

 $("#button").click(function() { $.ajax({ url: // type: // }).pipe(function (data) { var passedValue = []; for (var i = 0; i < data.length; i++) { passedValue[i] = data[i]["passedThis"]; } return passedValue; }).then(function (receivedPassed) { $.ajax({ data: { receivedPassed: passedValue } } } }); 

另请注意,jQuery 1.8中将弃用.success()回调:

弃用注意:jQuery 1.8中不推荐使用jqXHR.success()jqXHR.error()jqXHR.complete()回调。