0

函数 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;
        }                     
    });            
}
4

2 回答 2

2

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

因此,在您的情况下,一旦将请求发送到服务器,就会rk返回undefined(因为没有 return 语句) value 变量k将具有 value undefined

要解决这个问题,请使用$.ajax 返回的promise对象

rk(6).done(function(r){
    //do what ever you want to do with r
});

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

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

}
于 2013-03-28T15:24:21.043 回答
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)

于 2013-03-28T15:24:33.887 回答