[英]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.