我想知道如何将值从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;}
});
});
答案 0 :(得分:2)
这些请求是异步的,因此在第二个请求发送时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
。您的意思是+=
而不是=
,还是使用数组或什么?
答案 1 :(得分:1)
使用.then()
链接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()
回调:
弃用通知:
jqXHR.success()
,jqXHR.error()
和 jQuery 1.8中将弃用jqXHR.complete()
个回调。