2012-03-19 104 views
-1

我做了Ajax調用並得到了在回調函數響應類似下面退貨:,我正在訴空值值需要經過Ajax響應完成

var v=""; 
.... 
jq.post(contextPath + "/dmp/workspace/inlineCssExtraction", { 
     jsonForSaveInlineCss: JSON.stringify(styleArr) 
    }, function(data) { 
v=data; 
}); 

return v; 

問題我面臨的是 我認爲原因是,ajax響應需要很長時間,並且在這個retun v之前;行被執行。有什麼辦法可以解決這個問題嗎?

問候

+2

你先搜索,我想也有類似的quetions的地段/答案有... – 2012-03-19 11:13:17

回答

0

你不能做這種方式.... AJAX是異步 - 返回表達式將回調函數之前

jq.post(contextPath + "/dmp/workspace/inlineCssExtraction", { 
     jsonForSaveInlineCss: JSON.stringify(styleArr) 
    }, function(data) { 
     processdata(data); 
}); 

您可以將數據傳遞給一個函數,會得到執行AJAX的成功被稱爲

+0

耶!我忘了它是一個異步的。我會以另一種方式來做。無論如何,感謝您的帖子! – 2012-03-19 12:47:39

0

試試這個.. U可以不能夠以$。員額方法

function returnText() 
{ 
    var json = $.ajax({type: "GET", url: "test.php?teststr=i", async: false}).responseText;  
    return json; 
} 
返回值3210

U可以檢查.ajax(),如果你想使用POST方法

var request = $.ajax({ 
    url: "script.php", 
    type: "POST", 
    data: {id : menuId}, 
    dataType: "html" 
});