Asp.Net jQuery $ .getJSON иногда вызывает полную обратную передачу страницы? - PullRequest
1 голос
/ 23 октября 2008

Я пишу приложение веб-формы 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;
}

Ответы [ 2 ]

2 голосов
/ 24 октября 2008

Как вы запускаете эту функцию JavaScript?

Если это клиентский обработчик щелчков в элементе управления, таком как Button, вы должны обязательно вызывать protectDefault (). В противном случае браузер отправит форму и вызовет обратную передачу, даже когда выполняется обратный вызов AJAX.

0 голосов
/ 24 октября 2008

В некоторых случаях, когда jQuery не может выполнить вызов AJAX, он создает скрытый iframe и оттуда выполняет обычную отправку. Я предполагаю, что кое-как этот процесс ломается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...