Javascript 值需要在ajax响应完成后返回

Javascript 值需要在ajax响应完成后返回,javascript,ajax,Javascript,Ajax,我进行了ajax调用,在回调函数中得到了如下响应: var v=""; .... jq.post(contextPath + "/dmp/workspace/inlineCssExtraction", { jsonForSaveInlineCss: JSON.stringify(styleArr) }, function(data) { v=data; }); return v; 我面临的问题是,我得到了v的空值。 我认为原因是,ajax响应需要很长时间,在这次重新运

我进行了ajax调用,在回调函数中得到了如下响应:

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

return v;
我面临的问题是,我得到了v的空值。 我认为原因是,ajax响应需要很长时间,在这次重新运行之前;行被执行。有没有办法解决这个问题


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

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

您可以将数据传递给一个函数,该函数将在AJAX成功时调用。。u可能无法使用$.post方法返回值

function returnText()
{
    var json = $.ajax({type: "GET", url: "test.php?teststr=i", async: false}).responseText;     
    return json;
}
var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});
你可以检查一下你是否想使用post方法

function returnText()
{
    var json = $.ajax({type: "GET", url: "test.php?teststr=i", async: false}).responseText;     
    return json;
}
var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

你是先搜索的吗?我猜那里有很多类似的问题/答案……是的!我忘了它是异步的。我会用另一种方法。无论如何,谢谢你的帖子!