为什么ajax的返回值无法赋值?index.htm代码:<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function test(){
$.ajax({
url:"laji.php",
success:function(d){
return d;
}
});
}
function hello(){
var x=test();
alert(x);
}
</script>
<button onclick="hello();">hello</button>

解决方案 »

  1.   

    这个最好去JS版
    原因是AJAX是异步交互,不会等到return返回的。你对结果的处理放在jquery的success里即可
      

  2.   

    因为Ajax是异步处理的,所以test执行后不会立刻返回结果,你要取结果要在success函数中做,修改如下:
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        function test(){
            $.ajax({
                url:"laji.php",
                success:function(d){
                    alert(d);
                    return d;
                    //或者这里调用你后面的处理。
                }
            });
        }
        function hello(){
            var x=test();     
        }
    </script>
    <button onclick="hello();">hello</button>
      

  3.   

    加个async:false,也不行,郁闷。
      

  4.   

    从不用tp自带的ajax。都是用jquery的。