完成ajax响应后需要返回值

时间:2012-03-19 11:09:37

标签: javascript ajax

我做了ajax调用并在回调函数中得到了响应,如下所示:

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

return v;

我面临的问题是,我正在获得v的空值。 我认为原因是,ajax响应需要花费很长时间才能恢复。行已执行。有什么方法可以解决这个问题吗?

问候

2 个答案:

答案 0 :(得分:0)

你不能这样做.... AJAX是异步的 - 返回表达式将在回调函数之前执行

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

您可以将数据传递给将在AJAX成功时调用的函数

答案 1 :(得分:0)

试试这个..你可能无法用$ .post方法返回值

function returnText()
{
    var json = $.ajax({type: "GET", url: "test.php?teststr=i", async: false}).responseText;     
    return json;
}
如果你想使用post方法

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