我正在编写一个ASP.NET webforms应用程序,我正在使用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;
}
答案 0 :(得分:2)
你是如何触发JavaScript功能的?
如果它是像Button这样的控件上的客户端点击处理程序,则需要确保调用preventDefault()。否则,即使AJAX回调正在进行中,浏览器也会提交表单并导致回发。
答案 1 :(得分:0)
在某些情况下,当jQuery无法进行AJAX调用时,它会创建一个隐藏的iframe并从那里进行正常提交。我猜这个过程是如何分解的。