我正在对我的网站发出连续的 AJAX 请求。有 2 个 POST 请求。第二个请求应在第一个请求完成后处理。我的代码如下:
$.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/',
async: false,
success: function () {
console.log("First Process Done");
}
});
$.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/',
async: false,
success: function () {
console.log("Second Process Done");
}
});
第二个进程在第一个进程之后完成,但控制台日志记录是在第二个进程完成后执行的,而不是在第一个进程完成后执行的。我希望 console.log 在第一个进程完成后立即执行,然后继续执行第二个进程。有人可以帮忙吗?
最佳答案
如果您想编写同步“查看”代码并避免同步 XMLHttpRequest - 您可以使用 async/await
async function doAjax() {
await $.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/',
success: function() {
console.log("First Process Done");
}
});
await $.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/',
success: function() {
console.log("Second Process Done");
}
});
}
实际上,这样做更好
async function doAjax() {
await $.ajax({
type: 'POST',
url: '/backend/edge/enableNewAgent/'
});
console.log("First Process Done");
await $.ajax({
type: 'POST',
url: '/backend/edge/deleteOldAgent/'
});
console.log("Second Process Done");
}
注意,它必须在一个函数内完成(不必是像这样的单独函数,只需将其放在那里以强制执行该想法... await
仅在 异步
函数)
关于Javascript ajax同步请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833321/