在使用非同步請求時,有時需要將非同步請求的結果傳回給另一個js函數,此種情況下會出現未等非同步請求返回請求結果,該發送請求所在js函數已經執行完後續操作,即已經執行return ,這樣會導致return的結果為空字元。
總結:若要在使用ajax請求後處理發送請求回傳的結果,最好使用同步請求。
例如:以下範例會出現回傳結果不正確的情況,因為ajax非同步請求還未執行完,函數已經執行return了,
function fn(){
var result = " ";
$🎜>var result = " ";
$.
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
success : function (data){
do something....
result = ....
}
// 對ajax中回傳的data進行處理,也會出錯
return result ;
}
1 異步請求方式:
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
});
2 同步要求方式
複製程式碼
複製程式碼
程式碼如下:
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : false,
type : "POST", dataType : 'json/xml/html', success : function (result){ do something.... } });