0
我有這個共同的JavaScript函數來處理我的ASP.NET Web窗體應用程序的所有Ajax請求:阿賈克斯完全沒有被調用
var xsrf_token, IsAjaxAsync = true;
function callAjax(Handler, ajaxData, Cache, BeforeSend, Complete, Reset) {
var URL = "http://" + window.location.host + "/Handlers/" + Handler + ".ashx";
$.retryAjax({
url: URL,
type: "POST",
timeout: 5000,
retryLimit: 3,
data: JSON.stringify({
XSRFToken: xsrf_token,
Data: ajaxData
}),
dataType: "json",
cache: Cache,
async: IsAjaxAsync,
beforeSend: BeforeSend,
success: function (data) {
var resp = parseInt(data);
if (resp != -10) {
Complete(data);
} else {
$.prompt("Please login to perform this operation.", {
title: "Logged Out",
close: function() {
window.location.href = "http://" + window.location.host + "/Login";
}
});
}
},
complete: function() {
UpdateHistory();
},
error: function (jqXHR, textstatus, error) {
if (textstatus == 0) showConnectionError();
if (Reset != null) Reset();
}
});
}
這個功能實際上是用這個插件調用AJAX:https://github.com/mberkom/jQuery.retryAjax
但是好像這個功能無法在各種狀況下打電話給complete
回撥。是否發生錯誤,或請求成功,或者即使回調返回false或其他東西。
我試圖在第31行添加斷點,但它沒有到達那裏。請告訴我在各種情況下我怎樣稱呼這個UpdateHistory()
?我不希望它在每個使用此函數的函數中調用。
我還想問的另一件事是,如果success
卡在一些無限循環或一些長期的過程,那麼仍將調用complete
?什麼是complete
被跳過的各種情況?
由於一個完整的回調。有效。 :) –