以下は、私が取り組んでいるjqueryスクリプトです。私はそれの非関連部分をすべて削除しました。jQueryで別のAJAX呼び出しの中でAJAX呼び出しを行うことはできますか?
あなたはajax呼び出しがあることがわかります。結果からif文があり、他の項目は取り除かれましたが、とにかく最初のajax呼び出しの結果からcaptchaが選択されています。
私は2番目のajax呼び出しを作成する必要があります。これは私の問題です。エラーはありませんが、2番目の応答を返さないようです。何か不足していますか?
<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>
"エラー"コールバック関数をトラップしようとしましたか?エラー:function(XHR、textStatus){console.log(XHR); }?火かき棒で要求にピックアップ? – gnarf
これは実際にAJAX呼び出しの中にあるわけではなく、 'success'関数は*呼び出しの後*です。 – Kobi