Asp.Net jQuery $ .getJSON有时会导致整页回发?

时间:2008-10-23 19:41:12

标签: asp.net jquery ajax webforms

我正在编写一个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;
}

2 个答案:

答案 0 :(得分:2)

你是如何触发JavaScript功能的?

如果它是像Button这样的控件上的客户端点击处理程序,则需要确保调用preventDefault()。否则,即使AJAX回调正在进行中,浏览器也会提交表单并导致回发。

答案 1 :(得分:0)

在某些情况下,当jQuery无法进行AJAX调用时,它会创建一个隐藏的iframe并从那里进行正常提交。我猜这个过程是如何分解的。