1
我在佈局頁面中註冊了一個jQuery全局處理程序來處理整個站點中的常見錯誤。這是它在佈局頁面中的註冊方式。jquery global ajaxError處理程序被調用,即使mvc Ajax.ActionLink調用被取消
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "610") {
window.location.replace(loginUrl);
}
else if (jqXHR.status == "600") { }
else {
alert("An error occurred processing your request");
}
});
我有一個Ajax.ActionLink在我看來(CSHTML),我感到下面
@Ajax.ActionLink("Save List", "_SaveStates",null,
new AjaxOptions { OnSuccess = "onSaveSuccess",
OnBegin = "onSaveBegin",
OnComplete = "onComplete"
},
new {@class="t-button", id="lnkSaveList" })
function onSaveBegin() {
var grid = $('#tlkBulkAddGrid').data('tGrid');
if (grid.total == undefined || grid.total == "" || grid.total < 1) {
alert('List is Empty');
return false; //Return False to cancel ajax call
}
$('.t-status .t-icon').addClass('t-loading');
}
奇怪部給出返回從處理程序錯誤使用OnBegin處理程序取消之一即使我返回false從onSaveBegin()全球ajaxError被調用。我不明白爲什麼應該觸發全局錯誤處理程序,因爲ajax調用已被取消,並且沒有發出請求。
在jQuery 1.5中,thrownError是「中止」,而不是「取消」,但你的解釋是正確的。如果我是正確的,請通過'取消'替換'取消'來編輯您的答案。這樣我就能夠接受你的答案作爲解決方案。 – Jatin
@Nirvan,該方法被稱爲'abort','thrownError'參數被'取消'。通過'jQuery 1.8.2'和'jQuery 1.10.2'測試。 – Zabavsky
我不確定我完全理解你的上述評論。在我的情況thrownError ==='取消'返回false,但thrownError ==='abort'返回true。我正在使用MVC 3和確切的jQuery版本jquery-1.5.1。 – Jatin