jquery - 循环内的 Jquery ajax 仅在第一个循环上运行
问题描述
请帮助我理解为什么我的 ajax 代码只在第一个循环上运行。我有一个 JSON 数组。需要处理每个 JSON 以从服务器获取响应。发生的情况是“处理中...”作为 arrayJSON 的长度在控制台中记录的次数,然后第一个循环将运行 ajax。之后我收到超时错误。下面是我的代码。非常感谢!
$.each(arrayJSON, function(i, arrayJSONInstance) {
jsonString = JSON.stringify(arrayJSONInstance);
$.ajax({
url: "php/phpcode.php",
data: {
data: jsonString
},
dataType: "json",
type: "POST",
timeout: 0,
beforeSend: function (response) {
console.log("Processing...");
},
success: function (response) {
console.log(response);
console.log("Success!");
},
error: function(response) {
console.log("ERROR:\n");
console.log(response);
}
});
});
解决方案
众所周知,ajax 调用是异步的,您的代码会发送多个 ajax 调用(取决于数组的长度)。
尝试使用以下方法使 ajax 调用同步:
async: false
告诉我它是否解决了问题。
推荐阅读
- three.js - three.js 中的平面常量定义
- java - 如何使用整数而不是 Enumerator.value 初始化枚举器数组
- javascript - Webpack 的文件加载器不会更新 HTML 文件中资产的路径
- eclipse - 您的应用程序没有 SLF4J 绑定
- javascript - 如何使用谷歌地图从php js创建距离计算网页
- php - 在PHP中将数字字符串转换为日期
- java - Android:倒计时数据应用程序 - 如何更改硬编码的结束日期
- r - 在列之间操作并对每组 R 的值进行分类
- c# - 如何使用 c# 代码将 pdf 转换为图像?
- mysql - 如何在mysql中将列类型从文本更改为日期