2010-12-05 134 views
0

得到回報嗨,我正在構建一個需要訪問服務器時間的應用程序,然後才能發送AJAX請求,唯一的方法是能夠有請求的函數使用AJAX,從服務器的時間,所以在我的功能,我有以下代碼:無法從jQuery AJAX成功函數

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(html){ return html; } }); 

在自己的代碼是好的,但因爲它是,我無法訪問返回的HTML,這意味着數據對我來說毫無用處。我嘗試將數據發送到另一個函數,甚至回到相同的函數,它只是增加了我認爲不需要的複雜性。我也嘗試將HTML的值設置爲另一個變量,然後使用,但這不起作用。

所以我問是否有一個簡單的方法來訪問從AJAX請求返回的「html」變量,所以我可以在頁面上設置變量等於該功能?

回答

1

做這樣的:

function getTime() { 

     $.ajax({ 
     type:"GET", 
     url:"app/time.php", 
      success: function(html){ setTime(html); } }); 
    } 

    function setTime(time){ 
    //do what ever you want with time 
    } 

當過您打電話時getTime()稱爲AJAX將被製成,並且功能setTime()將被調用,並且將得到時間通過它的論點。

,或者你可以做這樣的

功能的getTime(){

$.ajax({ 
    type:"GET", 
    url:"app/time.php", 
     success: function(time){ // do what ever with time ; } }); 
} 

我覺得這種方式比較容易的,但如果你有很長的函數,那麼前一個是清潔,我認爲。

0

你不能從那裏返回一個值。這是一個異步函數,在XHR的請求成功完成時觸發。這裏需要調用另一個回調:

function getTime(cb) { 
     .ajax({ 
     type:"GET", 
     url:"app/time.php", 
     success: function(html){ cb(html); } 
     }); 
} 

getTime(function(html) { 
    // do something with html 
}); 
+0

我想知道爲什麼當你有函數'getTime()'時調用函數'cb()'的數據''在那裏,我的意思是你在哪裏得到'getTime()'的HTML?當你調用'cb();' – 2010-12-05 15:17:17

+0

感謝Andy,但是當我使用該函數時,我希望能夠將服務器的時間設置爲一個變量,在這種情況下,我無法使其工作。 – 2010-12-05 15:23:37