gpt4 book ai didi

Javascript AJAX 函数返回未定义而不是 true/false

转载 作者:行者123 更新时间:2023-12-01 02:37:52 25 4
gpt4 key购买 nike

我有一个发出 AJAX 调用的函数(通过 jQuery)。在 complete 部分中,我有一个函数:

complete: function(XMLHttpRequest, textStatus)
{
if(textStatus == "success")
{
return(true);
}
else
{
return(false);
}
}

但是,如果我这样调用它:

if(callajax())
{
// Do something
}
else
{
// Something else
}

第一个永远不会被调用。

如果我将 alert(textStatus) 放入 complete 函数中,我会得到 true,但不会在该函数返回 undefined 之前。

是否可以将回调函数传递给我的 callajax() 方法?喜欢:

callajax(function(){//成功}, function(){//错误}, function(){//完成});

最佳答案

complete 是一个回调函数。它将由 Ajax 对象异步调用! - 操作完成时。您无法捕获回调的结果,只有 Ajax 对象可以做到这一点。

您的 callajax() 函数 - 您没有显示该函数,但我认为它只是进行 Ajax 调用 - 无法返回调用的结果(= 响应 header 和正文),因为当您退出 callajax() 函数时,调用尚未完成。

更新:也可以进行同步 AJAX 调用。感谢@Andris 指出了这一点。在 jQuery 中,您需要将 async 选项设置为 false:Docs here 。然而,据我所知,即使那些使用标准回调函数,所以您想要的返回 falsetrue 的方法可能仍然无法工作。

关于Javascript AJAX 函数返回未定义而不是 true/false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2813974/

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