解决Ajax发送重复请求的POST请求的方法可以使用以下代码示例:
var requestSent = false; // 用于检查请求是否已经发送
function sendPostRequest() {
if (!requestSent) {
requestSent = true; // 标记请求已发送
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 设置请求方法和URL
var url = "your_api_endpoint";
xhr.open("POST", url, true);
// 设置请求头
xhr.setRequestHeader("Content-Type", "application/json");
// 设置回调函数
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
// 请求成功处理
console.log(xhr.responseText);
} else {
// 请求失败处理
console.error(xhr.statusText);
}
requestSent = false; // 重置请求状态,允许发送下一个请求
}
};
// 发送请求
var data = JSON.stringify({ key: "value" });
xhr.send(data);
}
}
在上述代码中,我们使用一个布尔变量requestSent
来记录请求是否已经发送。当点击发送按钮时,我们首先检查requestSent
的值,如果为true
,则表示已经有请求正在进行中,不再发送重复请求。如果为false
,则将requestSent
设置为true
并发送请求。在请求完成后(无论成功或失败),将requestSent
重置为false
,以便允许发送下一个请求。这样可以确保只有一个请求在进行中,避免发送重复请求。