无法在jquery getjson函数中设置变量?

我想在发送ajax请求后在函数中设置一个变量。 为什么getjson函数之外的函数警报未定义且在良好值内的原因是什么? 有一些解决方案吗?

function gettextlabel(txtvar){ var v = ''; $.getJSON('http://192.168.0.92/visuals/support/text_handler.php?txtvar=' + txtvar , function(data) { v = data; alert(v); }); alert(v); } 

因为默认情况下jQuery异步发送ajax请求。

您可以将选项async设置为false以强制它同步工作,例如:

 $.ajax({ type: 'GET', url: 'http://192.168.0.92/visuals/support/text_handler.php?txtvar=' + txtvar, dataType: 'json', success: function(data) { v = data; alert(v); }, async: false }); 

这应该工作:

 function gettextlabel(txtvar){ var v = ''; $.ajax({ url: 'http://192.168.0.92/visuals/support/text_handler.php', data: 'txtvar=' + txtvar, type: 'GET', dataType: 'json', async: false, success: function (data) { v = data; alert(v); } }); alert(v); }