变量在ajax之后显示为空白,但在ajax成功函数中具有值

variable appearing blank after ajax, but has value within ajax success function

本文关键字:ajax 函数 成功 但在 之后 显示 空白 变量      更新时间:2023-09-26

正如标题所说,我有一个ajax函数,我正在使用它来调用一个函数,该函数从我的mysqldb中为js中的变量赋值。成功后,我可以打印出响应的数据,它会很好地显示在控制台中。但是,在ajax调用之后调用该变量会产生一个空变量。发生了什么事?

以下代码:

request = $.ajax({ 
                        url: "/fans/get_url_tag", 
                        type: "post", success:function(data){url_tag = data; console.log(url_tag); //prints the correct value}, 
                        data: {'fbid': result.id} ,beforeSend: function(data){console.log(data);} 
                    });
//prints nothing
console.log(url_tag)

听起来作用域是错误的。也许只是在$.ajax调用之前声明它:

var url_tag;
request = $.ajax({ 
                    url: "/fans/get_url_tag", 
                    type: "post", success:function(data){url_tag = data; console.log(url_tag);}, 
                    data: {'fbid': result.id} ,beforeSend: function(data){console.log(data);} 
                });
console.log(url_tag); //Should print the same value

您需要将console.log放入回调函数中。