2012-03-19 10 views
-1

私はAJAX呼び出しを行なったし、以下のようなコールバック関数で応答なって行われた後に返却する必要があります。私は直面しています値はAjaxのレスポンスが

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

return v; 

問題があるが、私はVの空の値を取得しています 私は思います理由は、ajaxレスポンスは長い時間がかかり、このretun vまでです。行が実行されます。この問題を解決する方法はありますか?

よろしく

+2

は、あなたが最初に検索した場合はUは.ajax()をチェックして、私はええ –

答えて

0

あなたはこのようにそれを行うことはできません.... AJAXは非同期です - あなたはどの希望の関数にデータを渡すことができ

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

コールバック関数の前にreturn式が実行されますAJAXの成功に呼び出されることは

+0

...そこに似たquetions /答えがたくさんあると思います!私はその非同期性を忘れてしまった。私は別の方法でそれをやります。とにかく、あなたのポストに感謝! –

0

uは$ .post方法

function returnText() 
{ 
    var json = $.ajax({type: "GET", url: "test.php?teststr=i", async: false}).responseText;  
    return json; 
} 
で値を返すことができない場合があり...これを試してみてください3210

あなたがしたいの使用POSTメソッド

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