2011-05-25 32 views
0

要求我需要進行兩個Ajax調用,一個依賴於前一個調用的返回值。我試圖從外部對象的onComplete函數中創建一個新的Ajax對象,但似乎這不會被調用。外部對象的嵌套阿賈克斯原型

的的onComplete功能將被調用。代碼被執行到我構建第二個Ajax對象的地方。

它看起來是這樣的:

function called_from_page() { 
    new Ajax.Request(
    '/request_url', 
    { method: 'post', parameters: '', onComplete: function(originalRequest) { 
     if (originalRequest.responseText == '0') { 
     // do something 
     } else { 
     call_next_ajax(); 
     } 
    }}); 
} 

function call_next_ajax() { 
    new Ajax.Request(
     '/next_request_url', 
     { method: 'post', parameters: '', onComplete: some_other_function }); 
    } 

所以,問題是,call_next_ajax被調用,但在它的Ajax請求不會被調用。

+0

你可以發佈您的代碼? – tradyblix 2011-05-25 05:38:07

+0

你看到的任何錯誤? – 2011-05-25 06:15:50

+0

沒有錯誤。只是沒有被調用。 – James 2011-05-25 14:02:55

回答

0

我能想到的唯一的問題是:有沒有「next_request_url」或沒有「some_other_function」。在這兩種情況下,call_next_ajax()都不會執行。

0

Defer第二步通過改變...

call_next_ajax(); 

...到...

call_next_ajax.defer();