Pouvez-vous faire un appel AJAX à l'intérieur d'un autre appel AJAX en jquery?
Ci-dessous est une script jquery je travail, j'ai démonté tous les non-parties pertinentes de l'.
Vous pouvez le voir il y a un appel ajax, à partir des résultats il y a une instruction if, les autres éléments de notre dépouillé, mais de toute façon le captcha est repris à partir du résultat du premier appel ajax.
Je puis avoir besoin de faire un deuxième appel ajax, c'est là que mon problème est que je n'obtiens pas d'erreur mais il ne semble pas renvoyer une réponse sur la deuxième, j'ai loupé quelque chose?
<script type="text/javascript">
$(document).ready(function() {
//make ajax call
var dataString = 'comment=' + comment;
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
dataType: "json",
success: function(data) {
//result from 1st ajax call returns "captcha"
if (data.response === 'captcha') {
//a bunch of code is ran
////////////////////////
//then...
$().bind('cbox_closed', function() {
var dataString2 = 'comment=' + comment + '&run=captchagood';
//our nested ajax call
//this is the part that is having trouble =(
$.ajax({
type: "POST",
url: "process.php",
data2: dataString2,
dataType: "json",
success: function(data2) {
if (data2.response === 'captchagood') {
alert('test');
$('div#loader').find('img.load-gif').remove();
$('div#loader').append('<span class="success">Thanks for your comment!</span>');
$('div#loader').hide().fadeIn('slow');
$('span.limit').remove();
$('div#comments').append(data);
$('div#comments div.comment-unapproved:nth-child(1)').hide().slideDown('slow');
$('input#submit-comment').unbind('click').click(function() {
return false;
});
//success append the sanitized-comment to the page
$('#comments').prepend(data.comment);
};
//end captcha status returned
}
});
});
};
return false;
});
});
});
</script>
avez-vous essayé le piégeage de la "erreur" fonction de rappel? error: function(XHR, textStatus) { console.log(XHR); }? Jeté un œil à la demande avec firebug?
Ce n'est pas vraiment à l'intérieur de l'appel AJAX, le
Ce n'est pas vraiment à l'intérieur de l'appel AJAX, le
success
fonction est après à l'appel.OriginalL'auteur JasonDavis | 2009-08-12
Vous devez vous connecter pour publier un commentaire.
Il n'y a rien de mal à avoir un appel ajax à l'intérieur d'un callback ajax. En fait, vous n'êtes même pas faire ce que, ce que vous faites ici est:
Quelques éléments à vérifier:
Est le rompre son retour avec succès? (n ° 404, erreur 500...)
Vous êtes en anticipant une réponse json. Ne contient pas de données comme {réponse:'captcha} que vous êtes arrivée?
Quel est le cbox_closed événement déclenché? Êtes-vous sûr qu'il se passe?
OriginalL'auteur jammus
Vous avez passé le "succès" de rappel de jQuery, mais pas de "erreur" de rappel. De cette façon, vous êtes en ignorant l'erreur. Voici un exemple de capture de l'erreur, et éventuellement de les afficher dans la console de Firebug.
OriginalL'auteur vdboor