2008-10-23 7 views
1

J'écris une application web ASP.NET, et j'utilise jQuery pour mes appels AJAX. Cela fonctionne bien, mais dans certains cas, l'appel $ .getJSON provoque une publication en pleine page. Je n'utilise pas la bibliothèque ASP.NET AJAX n'importe où dans l'application. Je ne peux pas reproduire le problème de manière cohérente, et je ne suis pas sûr de ce qui le cause. Voici le code jQuery que j'utilise. Quelqu'un a-t-il traversé cela avant? Est-il possible que l'appel AJAX précédent ne soit pas terminé et que les demandes se chevauchent?

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; 
} 

Répondre

2

Comment déclenchez-vous cette fonction JavaScript?

S'il s'agit d'un gestionnaire de clic côté client sur un contrôle tel qu'un bouton, vous devez vous assurer d'appeler preventDefault(). Sinon, le navigateur soumettra le formulaire et provoquera une publication, même si le rappel AJAX est en cours.

0

Dans certaines circonstances où jQuery ne peut pas faire un appel AJAX, il crée une iframe cachée et fait une normale présenter à partir de là. Je devine que certains processus de décomposition.

+0

Mais y at-il une autre fonction que je peux utiliser dans getJSON pour déterminer les erreurs rencontrées ou pour déterminer quand l'appel est terminé? –

Questions connexes