gpt4 book ai didi

jquery - 使用 jQuery 在函数中返回 $.get 数据

转载 作者:行者123 更新时间:2023-12-03 21:29:27 26 4
gpt4 key购买 nike

我正在尝试调用一个包含 jQuery 代码的函数。我希望这个函数返回 jQuery 语句的结果。它不起作用,我正在尝试找出原因。

function showGetResult (name) {
var scriptURL = "somefile.php?name=" + name;
return $.get(scriptURL, {}, function(data) { return data; });
}

alert (showGetResult("John"));

警报显示“[object XMLHttpRequest]”。但是,如果我在函数之外单独运行 jQuery 语句,它可以正常工作 -> $.get(scriptURL, {}, function(data) {alert(data); })

我希望能够通过将其放入返回 $.get 数据的函数中来重用该代码。我在这里犯了什么根本错误?

最佳答案

你有几个不同的错误。首先,$.get 不返回回调函数的返回值。它返回 XHR 对象。其次,get 函数不是同步的,它是异步的,因此 showGetResult 可能会在 get 完成之前返回。第三,您不能将回调内部的某些内容返回到外部作用域。但是,您可以在外部作用域中绑定(bind)变量并在回调中设置它。

要获得所需的功能,您需要使用 $.ajax 并将 async 选项设置为 false。然后,您可以在外部作用域中定义一个变量,并在ajax回调中对其进行赋值,从函数中返回该变量。

function showGetResult( name )
{
var result = null;
var scriptUrl = "somefile.php?name=" + name;
$.ajax({
url: scriptUrl,
type: 'get',
dataType: 'html',
async: false,
success: function(data) {
result = data;
}
});
return result;
}

不过,弄清楚如何在回调函数本身中执行您想要的操作,而不是从异步调用更改为同步调用,您可能会得到更好的服务。

关于jquery - 使用 jQuery 在函数中返回 $.get 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1639555/

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