javascript - jquery ajax请求中嵌套的ajax请求不断重复执行
黄舟
黄舟 2017-04-11 12:38:43
0
1
611

想使用ajax实现,加载评论时,将评论的回复也加载显示出来,但加载评论的回复时,执行加载回复的ajax代码不断重复执行,不断重复请求,检查发现加载评论的回复时for循环里i的值,一直为0。请问这是为什么,该如何解决?已经尝试过async:false,不行;初始以为是两个for循环都用i的缘故,将加载评论回复的i改为j也不行

    //加载已有评论
    function setCommentList(Id,commentbox) {
$.ajax({
type:"POST",
url:"/commentSelect",
dataType:"json",
data:{"Id":Id},
success:function(data){
for(var i = 0;i<data.length;i++) {
    var commentTemp= '<p class="comment-text"><span class="user">'+data[i].info+':</span>'+data[i].commentContent+'</p>'+
    '<p class="comment-time">'+data[i].commentTime+'</p>';
    var commentContent = document.createElement("p");
    commentContent.innerHTML = commentContent.innerHTML + commentTemp
    commentbox.appendChild(commentContent);
    console.log("评论数量"+data.length);
    setComment2List(data[i].commentId,commentContent);
}
},
error:function(){
alert("加载评论发生错误");
}
});
    }

    //加载评论的回复
    function setComment2List(commentId,commentContent) {
$.ajax({
type:"POST",
url:"/comment2Select",
dataType:"json",
async:false,
data:{"commentId":commentId},
success:function(data2){
console.log("@@@");
for(var j=0;j<data2.length;j++) {
    console.log("bug"+j);
    var comment2Temp= '<p class="comment-text"><span class="user">'+data2[j].info+':</span>'+data2[j].comment2Content+'</p>'+
    '<p class="comment-time">'+data2[j].comment2Time+'</p>';
    var comment2Content = document.createElement("p");
    comment2Content.innerHTML = commentContent.innerHTML + comment2Temp
    commentContent.appendChild(comment2Content);
    setComment2List(data2[j].commentId,commentContent);
}
},
error:function(){
alert("加载评论的回复发生错误");
}
});
    }
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

reply all(1)
Peter_Zhu

你在setComment2List 的ajax success一直重复调用setComment2List自己``只要setComment2List的ajax能进success就会一直重复调用啊··复制也不要太懒··

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template