我正在使用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);
}
});
});
您必须通过以下方式调试此代码:
hii
打印到控制台的次数。$.ajax
开始时添加断点。然后检查调用堆栈。希望它对你有所帮助。
不要用
(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调用,现在你可能知道如何处理,如果不让我知道,我会尝试解释更多。