2015-11-09 4 views
0

Lorsque vous cliquez sur une ancre, j'envoie une requête POST à ​​un navigateur croisé du serveur pour suivre un clic. Cependant, la page suivante est chargée avant que la requête ne reçoive une réponse et la requête est annulée.jQuery submit ajax post sur l'ancre cliquez sur

$('body').on('click', '.link a', function() { 
    $.post('https://someserver.com/', { 
     param: 'here' 
    }); 
}); 

Comment assurer que la demande reçoit une réponse avant le chargement de la page?

+0

Oui vous devriez faire un 'return false;' et avant que vous pouvez faire le poste, puis à l'intérieur du 'complet: function() { } 'callback un javascript redirect' window.location.href' :) –

+0

Ou juste copier JCOC611 réponse, lol –

Répondre

1

Prévenir l'action par défaut jusqu'à ce que vous entendez une réponse:

$('body').on('click', '.link a', function(e) { 
    e.preventDefault(); 
    var href = $(this).attr("href"); 
    $.post('https://someserver.com/', { 
     param: 'here', 
     success: function(){ 
      window.location.href = href; 
     } 
    }); 
}); 
+0

petite faute de frappe autour de la fonction de rappel de succès si {{param: 'ici'} .success (function() {}) ' –

+0

@AsaCarter semble fonctionner pour moi ... on dirait que c'est une autre syntaxe valide – JCOC611

+0

Excuses, je regardais la syntaxe de $ .post dans les docs jQuery. –