我使用 ajax post 循环将当前 i 值发布到其他 php 页面,并从该 php 页面获取相同的 i 值。但是,我的值在发布前增加了 1。这行 console.log(data); 输出 2,..,100,1 。我不明白为什么会这样。预期输出为 1,..,100。
for (i = 1; i <= 100; i++) {
$.ajax({
type: 'POST',
url: '2.php',
data: { 'id': i } ,
success: function(data) {
//console.log(data);
}
});
}
2.php
<?php
echo $_POST['id'];
?>
请您参考如下方法:
在新函数中使用 ajax 调用,然后将函数调用到循环中。
还要在您的 ajax 请求中添加 async:false。它会同步发送ajax请求,等待上一个请求完成后再发送下一个请求。
有点像
function func() {
for (let i = 1; i <= 100; i++) {
makeRequest(i);
}
}
function makeRequest(i) {
$.ajax({
type: 'POST',
url: '2.php',
data: {
'id': i
},
async:false,
success: function(data) {
//console.log(data);
}
})
}


