Я пишу приложение веб-форм ASP.NET и использую jQuery для своих вызовов AJAX. Это работает хорошо, но в некоторых случаях вызов $ .getJSON вызывает возврат всей страницы. Я не использую библиотеку ASP.NET AJAX в приложении. Я не могу воспроизводить проблему на постоянной основе и не уверен, что ее вызывает. Вот код jQuery, который я использую. Кто-нибудь сталкивался с этим раньше? Возможно ли, что предыдущий вызов AJAX не был завершен, и запросы перекрываются?
function getActionMismatch(id) {
setPageElementVisibility();
$(".ActionDetailArea").slideUp("fast");
$("#AjaxLoader_Action").show();
$.getJSON("Main.aspx?Callback=GetMismatch",
{ MismatchId: id },
function(result) {
$("#adMismatchId").text(result.MismatchId);
$("#adAuthMerchId").text(result.AuthorizationMerchantId);
$("#adSttlMerchId").text(result.SettlementMerchantId);
$("#adCreateDate").text(formatJSONDate(Date(result.AppendDts)));
$(".ActionDetailArea").slideDown('fast', toggleBlock('...click Adjust Promo to enter details', true));
$("#AjaxLoader_Action").hide();
}
);
return false;
}





В некоторых случаях, когда jQuery не может выполнить вызов AJAX, он создает скрытый iframe и выполняет обычную отправку оттуда. Я предполагаю, что каким-то образом этот процесс ломается.
Как вы запускаете эту функцию JavaScript?
Если это клиентский обработчик кликов на элементе управления, таком как Button, обязательно вызовите preventDefault (). В противном случае браузер отправит форму и вызовет обратную передачу, даже если выполняется обратный вызов AJAX.
Но есть ли какая-либо другая функция, которую я могу использовать в getJSON для определения обнаруженных ошибок или для определения завершения вызова?