我正在使用JQuery 3.3.1构建Web应用程序。似乎每次我进行ajax调用时,请求都会发送两次。我可以告诉您,因为我尝试在服务器端记录请求。我尝试了类似问题的解决方案,但它们似乎无济于事。
我将ajax调用与click事件分开了,因此不会发生,因为click事件被注册了两次。
$(function() {
console.log("hi");
var request = {};
request["user_id"] = 1;
request["date"] = new Date();
request["assignments"] = [{
"point_count" : 1,
"skill_mnemo" : "SKILL_FARM"
}];
$.ajax({
type: "POST",
dataType: "json",
mimeType: "application/json",
url: "./api/update_skill_point.php",
enctype: 'multipart/form-data',
data: request,
async: false,
cache: false,
success: function(result) {
console.log(result);
}
});
});
答案 0 :(得分:0)
您必须通过以下方式调试此代码:
hii
打印到控制台的次数。$.ajax
的开头添加断点。然后检查调用堆栈。希望对您有帮助。
答案 1 :(得分:0)
不要使用
(function(){})
如果我们使用(function(){}),它将在DOM准备就绪时自动调用,然后在需要时再次调用。
尝试
function ajaxCall()
{
console.log("hi");
var request = {};
request["user_id"] = 1;
request["date"] = new Date();
request["assignments"] = [{
"point_count" : 1,
"skill_mnemo" : "SKILL_FARM"
}];
$.ajax({
type: "POST",
dataType: "json",
mimeType: "application/json",
url: "./api/update_skill_point.php",
enctype: 'multipart/form-data',
data: request,
async: false,
cache: false,
success: function(result) {
console.log(result);
}
});
}
$(document).ready(){
ajaxCall();
}
通过这种方式,您可以控制ajax调用, 现在您可能已经知道了如何处理,如果不让我知道,我将尝试解释更多。