今天做項目時,寫了一個數據庫查詢后返回的函數
function getpname(PARENT_ID){ var pname=''; $.post("/KEJITEMP/DealWithBT",{ flag:"getpname", ID:PARENT_ID, },function(data){ data=JSON.parse(data); pname = data.CNNAME; }); return pname; }
在調用時獲取到的pname返回值一直為undefined,然后想到$.post發得請求為“異步”請求,所以pname沒有被賦值就被返回了,經過alert驗證function對pname賦值確實在return之后。
因此上面的寫法顯然是錯誤的,需要將發送方式改為同步:
var pname='';//設置全局變量 $.ajaxSettings.async=false; //插入這個代碼用ajax的“同步方式”調用一般處理程序 $.post("/KEJITEMP/DealWithBT",{
//另一種寫法時:
$.ajax({ url: "", async: false,//改為同步方式 type: "POST",