【问题标题】:Asp.Net jQuery $.getJSON sometimes causes full page postback?Asp.Net jQuery $.getJSON 有时会导致整页回发?
【发布时间】:2010-09-18 20:55:14
【问题描述】:

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

【问题讨论】:

    标签: asp.net jquery ajax webforms


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 但是我可以在 getJSON 中使用任何其他函数来确定遇到的错误或确定调用何时完成?
      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2018-12-15
      • 2016-04-24
      • 2015-07-21
      • 2019-08-09
      相关资源
      最近更新 更多