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

时间:2012-02-28 14:39:58

标签: javascript ajax jquery

我想在发送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);
}

2 个答案:

答案 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);
}