无法在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); }