簡體   English   中英

從jQuery ajax請求返回數據

[英]Returning data from jQuery ajax request

我正在嘗試獲取一個函數來執行ajax查詢,然后將解釋的JSON作為對象返回。 但無論出於何種原因,一旦執行此請求,只能從函數內訪問數據。

    function getCacheImage(direction) {

            jQuery.ajax({ 
                    url: json_request_string,
                    success: function(data) {
                    return data;
                    }
            });

    }

如何讓這個函數適當地返回'數據'?

謝謝。

您需要使用同步ajax請求(不是典型的或推薦的)並將數據捕獲到外部作用域中的變量中,或者弄清楚如何操作回調函數中的數據。 問題是ajax函數在ajax調用完成之前返回 - 它是異步的。

同步方式:

 function getCacheImage(direction) {
        var capture;
        jQuery.ajax({ 
                url: json_request_string,
                aSync: false,
                success: function(data) {
                   capture = data;
                }
        });
        return capture;
 }

典型的,使用回調

 function getCacheImage(direction,callback) {

        jQuery.ajax({ 
                url: json_request_string,
                success: function(data) {
                   callback( data );
                }
        });
 }

 getCacheImage('left', function(data) {
      ...do something with the data...
 }

你不能。 AJAX首字母縮寫詞的第一個字母代表異步,意味着發送AJAX請求並立即將控制權返回給調用函數。 您需要做的是使用回調函數中的數據。

您將數據返回到調用回調函數的代碼。 該代碼無法及時發送數據,因此可以從啟動請求的函數返回。

無論您想對數據做什么,都可以使用回調函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM