如何从jQuery中的ajax调用返回值?

如何从jQuery中的ajax调用返回值?,jquery,ajax,Jquery,Ajax,看看我的代码: function dialogTexts() { var langText = $.ajax({ type: 'GET', url: '/main/getdialogtexts', dataType: 'json' }); langText.done(function(data) { //data contains a array returned correctly from php

看看我的代码:

function dialogTexts() {
    var langText = $.ajax({
        type: 'GET',
        url: '/main/getdialogtexts',
        dataType: 'json'
    });

    langText.done(function(data) {  
        //data contains a array returned correctly from php            

        //The data.delete is returned correctly from php. data.delete contains a string 
        return data.delete; 
    });                        

    langText.fail(function(ts) {
        alert(ts.responseText);
    });
}
调用上述函数时,变量
lang
为什么会得到undefined

var lang = dialogTexts();

不能从异步ajax调用返回值。只能从回调中获取其值。除非您使用
async:false
,否则不建议使用该选项,因为它会在请求挂起时冻结UI


你是说
async:false
?好的,谢谢!也许我累了,但我不太明白如何从回调函数返回。我尝试在DialogText(函数(text))中使用一个返回,然后尝试var lang=DialogText(),但这当然行不通。您的代码可以运行,但我想将回调的returnvalue存储到一个变量中。@bestprogrammerintheworld看看您是如何拥有两个内部函数的?您为其中一个添加了返回值,但
DialogText
没有返回任何内容。即使您试图设置从内部处理程序在
dialogText
中返回的变量,
dialogText
也会在调用回调时返回,并且会在设置变量之前返回值。
function dialogTexts(callback) {
    var langText = $.ajax({
        type: 'GET',
        url: '/main/getdialogtexts',
        dataType: 'json'
    });

    langText.done(function(data) {  
        //data contains a array returned correctly from php            
        callback(data.delete)
        //The data.delete is returned correctly from php. data.delete contains a string 
        return data.delete; 
    });                        

    langText.fail(function(ts) {
        callback(false);
    });
}

dialogText(function(text) {
    alert(text);
})