我想在发送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);
}
答案 0 :(得分:1)
因为默认情况下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
});
答案 1 :(得分:1)
这应该有效:
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);
}