Javascript Ajax调用返回一些但不是全部Json数据
我试图让用户选择一些数据,然后使用ajax将这些数据插入到数据库中。然后,我使用ajax从json端点获取新数据,这样我就可以在不重新加载网页的情况下更新网页。但是,ajax调用有时不会返回所有更新的数据。例如,如果用户选择3项,ajax调用有时只返回前2项 插入数据库Javascript Ajax调用返回一些但不是全部Json数据,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我试图让用户选择一些数据,然后使用ajax将这些数据插入到数据库中。然后,我使用ajax从json端点获取新数据,这样我就可以在不重新加载网页的情况下更新网页。但是,ajax调用有时不会返回所有更新的数据。例如,如果用户选择3项,ajax调用有时只返回前2项 插入数据库 $.ajax({ dataType: "json", url: "http://localhost:8080/api/addChampionForUser",
$.ajax({
dataType: "json",
url: "http://localhost:8080/api/addChampionForUser",
data: params,
async: false,
success: function (data) {
$.each(data.newChamp, function (key, val) {
if (val.mes) {
$(".message").append("<div> " + val.mes + " </div>");
}
else if (val.err) {
$(".message").append("<div> " + val.err + " </div>");
}
});
}
});
json输出如下所示:
{"champions":[[
{
"class":"championkeeper.Champion",
"id":null,
"name":"Aatrox",
"type":"fighter",
"user":"test"
},
{
"class":"championkeeper.Champion",
"id":null,
"name":"Blitzcrank",
"type":"fighter",
"user":"test"
},
{
"class":"championkeeper.Champion",
"id":null,
"name":"Darius",
"type":"fighter",
"user":"test"
}
]]}
考虑到你的json输出没有被切断并成功解析,我猜是API造成的。当我刷新页面时,API有更新的数据。但是第一个ajax调用必须在第二个调用开始之前完成?尝试向ajax对象添加
cache:false
。我将两个ajax调用都设置为同步,并且成功了!如果让ajax同步解决了您的问题,这意味着您确认遇到了“竞争”情况。将XMLHttpRequest转换为同步模式是一种不好的做法,因为它会使javascript挂起,直到响应返回,而该特性也正因为这个原因而被弃用。我在代码示例中看不到这两个AJAX请求,但我想看看如何将回调“链接”在一起,从而使AJAX请求保持异步。
{"champions":[[
{
"class":"championkeeper.Champion",
"id":null,
"name":"Aatrox",
"type":"fighter",
"user":"test"
},
{
"class":"championkeeper.Champion",
"id":null,
"name":"Blitzcrank",
"type":"fighter",
"user":"test"
},
{
"class":"championkeeper.Champion",
"id":null,
"name":"Darius",
"type":"fighter",
"user":"test"
}
]]}