我有一個運行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