我有一个运行throught连续5个步骤的过程,并在我的网页,我呼吁每个人的AJAX方法。jQuery的AJAX“太多递归”
的想法是运行第一个,如果一切ok了第二个,依此类推。
我的代码是:
$("#foo").click(function(){
$.ajax({
url: 'ajax.php',
async: false,
data: {
step: 1
},
dataType: 'json',
type: 'GET',
success: walk_through(data)
});
});
function walk_through(data)
{
if(data.status == 'ok')
{
if(data.next_step == 'end')
{
// All steps completed
}
else
{
// Current step completed, run next one
$.ajax({
url: 'ajax.php',
async: false,
data: {
step: data.next_step
},
dataType: 'json',
type: 'GET',
success: walk_through(data)
});
}
}
else
{
alert("Error.");
console.log(data);
}
}
即时得到“太多递归”错误,即使我的Ajax调用被设置为syncronous ..为什么呢?
代码是否工作,尽管错误呢,还是失败?你真的*希望请求是同步的吗?如果它们是异步的,它将不会递归。 – Pointy 2011-06-13 12:41:29
很显然你不曾经得到NEXT_STEP ==“端”检查什么是响应 – venimus 2011-06-13 12:44:17
@Pointy:不,我不需要请求是syncronous,但我认为问题是, – Strae 2011-06-13 12:57:06