如何将变量从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()
回调。