关于$.ajax 返回返回值问题

来源:互联网 发布:javascript与javaweb 编辑:程序博客网 时间:2024/05/23 01:22

一般情况下ajax默认的是异步的也就是async:true;

function  getdata()

{

                var url=$("#posturl").val();

                var test="1";
                $.ajax({
                    url:url,
                    type:"POST",
                    //async:false,
                    dataType:"text",
                    data:
                    {
                        data:treeNode.id
                    },
                    success:function(data){
                        test=data;//此时data=2;
                    }
                });
               return test;

}

此函数的返回值为初始化的‘1’;这是因为Jquery的ajax是异步的,所以大多时候没执行完AJAX就return 1了,所以会一直返回1

但是如果加上async:false,就发送同步请求。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

function  getdata()

{

                var url=$("#posturl").val();

                var test="1";
                $.ajax({
                    url:url,
                    type:"POST",
                    async:false,
                    dataType:"text",
                    data:
                    {
                        data:treeNode.id
                    },
                    success:function(data){
                        test=data;//此时data=2;
                    }
                });
               return test;

}

此时的返回值为2;


原创粉丝点击