如何解决Ajax查询结果成功调用多次
我有一个ajax调用,其中两次调用了成功函数。我试图分析但没有弄清楚为什么它被调用两次。
我正在使用for循环调用ajax功能,而在内部,我根据条件(f==i+1)
在成功功能内调用了第二个ajax。如果条件匹配,则它将调用第二个ajax功能,但是发生的情况是,在循环结束之后,第一次ajax调用成功内部将两次调用alert("Check call");
。如果i=1
在循环中应该只调用一次。
在第一个循环中发生的情况是条件没有成功,当循环结束时,它会在循环发生的时间内进入第一个Ajax的成功,并且f
变为2,而i+1
变为2,因此它将检查条件两次。
任何帮助将不胜感激。
$(document).on("click","#Rsub1",function (e) {
if ($("#Rvno").val() == "" || $("#Rvno").val() == null) {
alert("Please enter vendor no");
} else {
for (var f = 0; f <= i; f++) {
(function (index) {
$.ajax({
type: "POST",url: "../Home/RaisePReq",data: formData,dataType: 'json',contentType: false,processData: false,cache: false,success: function (r) {
if (f == i + 1) {
alert("Check call");
var fieldvals
$.ajax({
type: "POST",url: "../Home/gridtbl",data: JSON.stringify(fieldvals),contentType: "application/json; charset=utf-8",datatype: "json",success: function (r) {
$('#Grdtbl').html(r);
//jQuery.noConflict();
$('#ipcelltbl').DataTable({
dom: 'Bfrtip',buttons: [
'copy','csv','excel','pdf','print'
]
});
},failure: function () {
alert("Error");
}
});
}
},failure: function () {
alert("Error");
}
});
})(f);
}
}
});
解决方法
您好@sam欢迎来到SO,
带有一个标志,在成功脚本之前的开始处初始化为 false ,如果成功,则将标志 true 放在成功脚本的最底端,并声明在成功脚本的开始中检查标志 true ,然后退出等。
,if i = 1
then
for (var f = 0; f <= i; f++) {
for (var f = 0; 0 <= 1; f++)
for (var f = 1; 1 <= 1; f++)
stop because 2 <= 1 is false.
if i = 1 then for loop running 2 times.
,
For循环首先初始化变量,然后检查条件,然后执行一些代码并递增或递减变量。在您的情况下,当i = 1时,则在第一次执行时检查f
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。