我有一個函數內返回成功函數json對象的ajax調用,我需要設置返回的數據到一個變量,搜索答案,但我找不到任何有用的答案。從ajax返回值並將該值設置爲一個變量
方法1:
即時調用一個函數,這樣
var obj = ajaxCall();
我的代碼返回的值設置爲一個變量是像
function ajaxCall(){
var result;
$.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
result = data;
}
});
return result;
}
如果我登錄成功回調中的數據我的json與此類似
[{ collection: "Super Hero", img:"http://img_url.jpg",
heros: [{ id: "111", text: "Iron Man" },
{ id: "123", text: "Superman" },
{ id: "124", text: "Batman" }]
}]
但它不是返回值,而是值返回空字符串,因爲該返回函數不會等待ajax成功函數。
方法2:
我已經從成功調用函數,並從該funcion返回值,這樣
function ajaxCall(){
var result;
$.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
callBack(data);
}
});
function callBack(data){
return data;
}
return callBack();
}
在這種情況下
的函數返回內部主的價值,但只有另一個數組試圖陣列(英雄)只,不是外部變量,如何解決?
我試圖上述方法中,和我看到類似下面(不知道其中i已經看到這一點)直接設置AJAX結果到可變
function ajaxCall(){
var result= $.ajax({
url: url_of_my_php_file,
dataType: 'json',
type: 'GET',
contentType: 'application/json',
success: function(data) {
// it returns json Object "data"
result = data;
}
},(0);
}
是這種方法是有效的?
如果不是,那麼有沒有什麼辦法讓該字符串結果變量並將其返回給obj?
更新:
我已經試過this link,但該方法是不是爲我工作,如果它不工作對我來說它再怎麼是副本?
迄今爲止唯一正確的在這個問題上,祝賀之一!僅供參考,你可以做'成功:回調'不需要創建一個匿名函數來調用一個名爲:) – George