gpt4 book ai didi

jquery ajax 请求在 beforeSend 之前发送

转载 作者:行者123 更新时间:2023-12-01 07:35:22 32 4
gpt4 key购买 nike

有人对 jQuery AJAX 和 beforeSend 属性有过同样的经历吗?有什么建议可以解决这个问题吗?

我正在做的是在我想通过 AJAX 将新数据发送到数据库之前使用 AJAX 调用从数据库中读取数据(我需要到达所有评论的最后一页)。发生的情况是 beforeSend 检索数据以及之后应该发送的数据。有什么想法吗?

$.ajax({
type: 'POST',
url: '_php/ajax.php',
dataType:"json",
async:false,
data:{
action : "addComment",
comment_author : comment_author_val,
comment_content : comment_content_val,
comment_parent_id : comment_parent_id_val,
comment_post_id : "<?=$_REQUEST["ID"]?>"
},

beforeSend: function() {
//WHAT A MESS...
if (typeof commentOpen == "undefined") {
$.get("_php/ajax.php", { action: "getComments", commentPage: '', ID: "<?=$_REQUEST["ID"]?>" },
function(data){
$('#comments > ul').html(data);
return true;
}
);
}
},

最佳答案

beforeSend 中的数据检索操作是异步的,这意味着 $.get() 立即返回,然后 beforeSend 立即返回。然后$.ajax()继续执行。此时,$.ajax() 调用已经顺利进行,并且领先于 $.get() 调用。我不确定这两个请求是如何在幕后同时处理的,但这就是要点。

您想要做的是让 $.get() 同步执行,而不是异步执行。这样,在数据检索完成之前 beforeSend 不会返回。为此,只需将 async: false 添加到您的 $.get() 参数对象即可。

关于jquery ajax 请求在 beforeSend 之前发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2473962/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com