2012-03-19 68 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" 
});