function getPro() {
    var str = '';
    $.ajax({
        type:"POST",
        url: "?ctl=setting&act=getpro",
        success: function(msg){
            if (msg.length > 0) {
                str = decodeURI(msg);
            }
        }
    });
    return str;
}ajax请求成功后,我想使用该函数定义的str变量,如何做到啊?
不使用全局变量哈!
该函数的功能就是简单的返回ajax请求所得到的响应字符串!
望各位大虾不吝赐教!

解决方案 »

  1.   


    这个问题真的很多人问过,其实在网上查下就知道了。
    str的值很有可能取不到,取道的时候很少。
    why?
    因为在ajax异步交互的时候,程序不会等ajax请求完成了然后返回了值。再执行下面的代码的。
    如果是这样就失去了ajax的意义,如果你了解ajax的原理就知道这一点。
    所有你要取得ajax中的str值,就需要用同步。同步就会等ajax请求完成才继续执行的。没有完成就
    一直等到它完成为止。
    不过在异步情况下,你可以用setTimeout延时。直到str不为空才执行下面的代码。