我試圖在AJAX成功執行中添加一個可選的回調,但我似乎無法讓回調運行時,我希望它。AJAX成功內部回調
繼承人和例子我的AJAX代碼
function someAjaxFunction(hosturl, callback){
$.ajax({
type: "GET",
url: hosturl,
data: {'something': 'code' },
dataType: 'json',
success: function(html){
var arr = $.map(html, function(val) { return val; });
if(arr[0] != 'false'){
console.log('1');
console.log('2');
if (callback) {
console.log('calling the callback')
callback();
}
console.log('3');
}else{
console.log('fail')
}
}
});
}
這裏的AJAX是如何被執行
function thisIsACallBack(){
console.log("i'm a callback");
}
someAjaxFunction("some url", thisIsACallBack);
如果我運行這段代碼的控制檯輸出回調和榜樣。
1
2
3
i'm a callback
我甚至可以刪除回調if-condition在一起,我仍然會得到相同的輸出。
也是在這裏更好的方式來處理我的Ajax返回目前我的響應包裝在一個json對象。如果數據庫找不到對象,則必須在數組中放置'false'並將其轉換爲json對象,然後將其返回到ajax。
記住AJAX是異步的。在你正在做的Ajax調用中嘗試'async:false'。 – krozaine
請不要推薦'async:false' :) – guradio