jquery - 从ajax调用返回变量的函数

标签 jquery

我试图让一个函数从 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/

相关文章:

javascript - 如何获取/设置表格中的滚动位置?

jquery - PrettyPhoto 无法在准备好的文档上工作

jquery - 通过在图像上放置 4 个点来选择图像的一部分,以使用 JQuery 进行定义

javascript - 可以跟踪悬停在透明 div 上而不让 div 影响它覆盖的任何元素吗?

jQuery 调整大小功能在页面加载时不起作用

jquery - 如何在 mvc 中预览然后发布多个图像?

javascript - 输入时提交表单,页面上包含多个包含文件

javascript - 滚动到顶部 jQuery

javascript - 通过 JSON 返回不存在的变量的 Ajax 调用,我无法删除或更改

javascript - 使用 JS 创建用户屏幕截图并通过 ajax 问题发送到服务器