gpt4 book ai didi

javascript - jQuery $.ajax成功一定是回调函数?

转载 作者:行者123 更新时间:2023-11-29 22:41:23 25 4
gpt4 key购买 nike

我为 jQuery 的 $.ajax() 方法创建了一个包装函数,这样我就可以传递不同的数据类型和发布变量 - 就像这样:

function doPost(dType, postData, uri){

$.ajax({
url: SITE_URL + uri,
dataType: dType,
data: postData,
success: function(data){
return data;
});
}

我遇到的问题是取回数据(始终是 JSON)。我尝试在 $.ajax() 函数调用之前设置 var ret 并在成功函数中将其设置为 ret = data 。我在这方面很愚蠢吗?如果我不设置成功函数,$.ajax 会直接返回数据吗?还是只是成功:返回数据?还是 success 需要一个回调函数来处理数据,这可能只是 return data

最佳答案

好吧,你在一个函数中——利用变量作用域 ;-)

function doPost(dType, postData, uri) { 
var result;
$.ajax({
url: SITE_URL + uri,
dataType: dType,
data: postData,
async: false,
success: function(data){
result = data;
});
return result;
}

这确实有效,但我想 async 部分是必须的.​​.....否则 $.ajax 的调用将立即返回,并且 result 仍然是未定义的——作为函数调用的结果,你总是会得到 undefined

但是,当您使 $.ajax 调用同步时,它会阻塞,直到接收到数据,并且您可以将数据作为您自己的函数的 result 返回。

但是你必须清楚,使用这个方法时,在ajax加载完成之前不会执行其他代码!

关于javascript - jQuery $.ajax成功一定是回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531490/

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