Javascript 多个AJAX调用的限制?
背景: 我有一个javascript文件,其中有一个AJAX函数调用一个php文件,返回数据并使用它执行一个函数(一个sql查询返回一个设定日期的记录,然后使用googlemapsapi将其绘制在地图上)。让我们把这个数据称为 问题: 我需要的是能够获取接下来几天的数据并将其存储在一个数组中(我们称之为数据B),并将其与第一组数据(数据A)进行比较。 根据我的理解,我需要在这个调用中调用另一个ajax,我尝试了它,但似乎我无法获得数据,我可能对ajax的核心工作有误解。例如:Javascript 多个AJAX调用的限制?,javascript,php,sql,ajax,Javascript,Php,Sql,Ajax,背景: 我有一个javascript文件,其中有一个AJAX函数调用一个php文件,返回数据并使用它执行一个函数(一个sql查询返回一个设定日期的记录,然后使用googlemapsapi将其绘制在地图上)。让我们把这个数据称为 问题: 我需要的是能够获取接下来几天的数据并将其存储在一个数组中(我们称之为数据B),并将其与第一组数据(数据A)进行比较。 根据我的理解,我需要在这个调用中调用另一个ajax,我尝试了它,但似乎我无法获得数据,我可能对ajax的核心工作有误解。例如: var data_
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调用存储在一个函数中,该函数将数据存储在内部
function innerAjax(data_a){
$.ajax({
.....
//data_a can now be used here
})
}
并在第一个ajax中将其称为
innerAjax(data_a);
以同步方式使用AJAX的方法:)
感谢那些做出贡献的人 否,如果您使用异步AJAX(看起来是这样的),则不存在多个AJAX调用的限制
对于您的问题-可能您需要正确地等待两个ajax调用的结果,以存储结果,然后对其进行处理。第二个ajax调用传递的参数与第一个相同。您说过您需要获取第二天的数据,因此您需要发送不同的
数据:
参数。为什么不创建一个AJAX调用来返回您需要的所有数据,我没有执行多个调用,而是通过在函数之前设置变量来访问ajax调用之外的数据,但是当我在下面打印出来时,结果却是空的:/any ideas?你不能在一个调用中获得数据吗?使用Json可以轻松返回两个不同的数据集{“data-a”:{“data”:{……}},“data-b”:{“data”:{……}}}
看起来是这样的(这可能不对,但你明白了)。如果您确实需要AJAX调用,那么Barmar是对的。您没有调用两个不同的脚本。两者都在调用scriptday
。那么,在ajax调用之前,设置变量并在完成后访问它?我想我必须把它放在success函数中,因为完全在ajax调用之外访问是不起作用的。在函数生成空变量后打印数据a/数据b:/