jQuery Ajax返回值无效

时间:2013-03-28 15:19:30

标签: jquery ajax

函数rk()从Ajax调用返回随机密钥,参数l代表长度。我的问题是如何从我的“k”变量中获取Ajax结果的返回值?

var k = rk(6);

function rk(l) { //l stands for length
    $.ajax({
        url : 'ajax_lib.php',
        type : 'POST',
        data : 'k=1&l=' + l,
        success : function(r) {
            return r;
        }                     
    });            
}

2 个答案:

答案 0 :(得分:2)

Ajax使用异步处理,意味着一旦请求被发送到服务器,它将继续执行剩余的语句而不等待响应。

因此,在您的情况下,一旦请求被发送到服务器,rk返回undefined(因为没有返回语句)值,变量k将具有值{{1} }。

要解决此问题,请使用$ .ajax

返回的promise对象
undefined

答案 1 :(得分:0)

解决方案可能是

function rk(myVariable, l) {  //l stands for lenght           

    $.ajax({                  
        url : 'ajax_lib.php',                 
        type : 'POST',                
        data : 'k=1&l=' + l,              
        success : function(r)    {               
            myVariable = r;
        }                                   
    });  

}

而不是致电r=rk(l) 你可以致电rk(r, l)