1

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

2 回答 2

2

你是如何触发那个 JavaScript 函数的?

如果它是按钮等控件上的客户端单击处理程序,则需要确保调用 preventDefault()。否则,浏览器将提交表单并导致回发,即使在 AJAX 回调正在进行时也是如此。

于 2008-10-24T18:18:44.283 回答
0

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

于 2008-10-23T20:04:57.687 回答