我试图让一个函数从 ajax 调用返回一个字符串。
这是我的代码:
function GetText(getThis) {
var current = GetMarketAndLang();
var dataToReturn = "Error";
$.get('inc/ajaxGetText.php', {lang : current.lang, market : current.market, name : getThis},
function(data){
dataToReturn = data;
});
return dataToReturn;
}
使用 firebug 我可以看到 ajax 调用是正确的,但整个函数仍然返回文本“Error”而不是“and”。这是为什么?我能做什么?
谢谢。
最佳答案
这是因为 AJAX 查询的异步特性 - 函数在响应返回之前返回。要解决此问题,您必须使用完整的 $.ajax()
函数并将 async
设置为 false
:
function GetText(getThis) {
var current = GetMarketAndLang();
var dataToReturn = "Error";
$.ajax({
url: 'inc/ajaxGetText.php',
type: 'GET',
async: false,
success: function(data) {
dataToReturn = data;
}
});
return dataToReturn;
}
这会强制脚本等待请求返回,然后才能继续执行脚本,因此,该变量现在是从 AJAX 调用返回的变量。
关于jquery - 从ajax调用返回变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031580/