该
$.ajax()调用只是启动ajax操作。然后,代码进入您的
console.log语句,但ajax调用尚未返回。因此,
s尚未设定的值。
稍后,ajax调用将返回您的结果,并在那时触发您的回调。因此,如果要引用返回的值,则应
s在回调内部引用变量。
更好的方法通常是这样的:
$.ajax( { type: "POST", url: ajaxurl, data: {action: "get_info"}, success: function(r) { s = r.s; // Do something with s here... } });如果确实需要,则可以
s在回调之外进行引用,但如果需要,则需要放置某种机制以确保
s已初始化(即,您的ajax调用已返回)。这引入了其他复杂性,例如同步和错误处理,并且可能使程序流程变得不可靠。



