欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决ajax无法给外部变量赋值

程序员文章站 2022-03-09 22:15:57
...

欢迎大家去我的网站查看

因为Ajax默认是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,


  function btnclick() {
            var flag = "";
            console.log(flag)
            $.ajax({
                type: 'get', // 请求方式
                dataType: 'text',
                url: 'js/data.json', // 接口
                success: function(data) {
                    flag = 'asdasd';
                    console.log(flag);
                },
                error: function(data) {
                    flag = 'asdasdasdasdasd';
                    console.log(flag)
                }

            });
            console.log(flag);
            return flag;

        }

在ajax中设置async:false;也就是同步
当async为false的时候,意味着ajax请求为同步的,那么这个API就默认你是直接通过$.ajax()这个方法调用所返回的结果去取值,而不是通过success回调函数进行取值,所以也就不会调用success这个回调函数。


  function btnclick() {
           var flag = "";
            console.log(flag)
            $.ajax({
                type: 'get', // 请求方式
                dataType: 'text',
                url: 'js/data.json', // 接口
                async: false,  // 同步操作
                success: function(data) {
                    flag = 'asdasd';
                    console.log(flag);
                },
                error: function(data) {
                    flag = 'asdasdasdasdasd';
                    console.log(flag)
                }

            });
            console.log(flag);
            return flag;

        }
相关标签: ajax