上下文: 我有一个javascript文件,里面有一个AJAX函数,调用一个返回数据的php文件并用它执行一个函数(一个sql查询返回设定日期的记录,然后使用谷歌地图API将其绘制在 map 上)。我们称之为数据A
问题: 我需要的是能够获取接下来几天的数据并将其存储在数组中(我们称之为数据 B)并将其与第一组数据(数据 A)进行比较。 根据我的理解,我需要在这个调用中进行另一个ajax调用,我尝试了它,但似乎我无法获取数据,我可能对ajax的核心工作原理有误解。例如:
var data_a;
var data_b;
$.ajax({
type: "POST",
url: scriptday,
data: $("#dayForm").serialize(),
error: function( data ) {
console.log("Error: "+ data );
},
success: function( json ) {
data_a = json
//start of inner ajax call
$.ajax({
type: "POST",
url: scriptday2,
data: $("#dayForm").serialize(),
error: function( data ) {
console.log("Error: "+ data );
},
success: function( json ) {
data_b = json
// access data_a here
}
}
});
//end of inner ajax call
}
});
编辑: 正确的方法是将内部 ajax 调用存储在一个接受 data_a 的函数中。
function innerAjax(data_a){
$.ajax({
.....
//data_a can now be used here
})
}
并在第一个ajax中调用它
innerAjax(data_a);
这种方式以同步方式使用 AJAX :) 感谢贡献者!
最佳答案
不,如果您使用异步 ajax(并且看起来像您这样做),则不存在多个 AJAX 调用的限制。
对于您的问题 - 也许您需要正确等待两个 ajax 调用的结果,存储结果然后处理它们。
关于javascript - 多个 AJAX 调用的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27685953/