This question already has answers here:
How do I return the response from an asynchronous call?
                                
                                    (38个答案)
                                
                        
                6年前关闭。
            
        

我有两个例子。请告诉我为什么我的变量help不能按本示例的预期工作。我检查了它是否进入循环。

结果:undefined

function autopop(){
    var help;
    $.ajax({
        type : "POST",
        url : "/cgi-bin/my.pl",
        data : "action=autopop",
        dataType : "json",
        success : function(data) {
            for (var i = 0; i < data.length; i++) {
                help = "test";
            }
        }
    );

    $("#id").append(help);
}


结果:test

function autopop() {
    var help = "test";
    $.ajax({
        type : "POST",
        url : "/cgi-bin/my.pl",
        data : "action=autopop",
        dataType : "json",
        success : function(data) {
            for (var i = 0; i < data.length; i++) {
                help = "blub";
            }
        }
    );

    $("#id").append(help);
}


请告诉我为什么我无法从此Ajax /循环组合中访问var,以及如何更改此事实。

最佳答案

我猜想根据您的评论,您想要实现的是...

success : function(data) {
    $("#id").append(data);
}


要么

success : function(data) {
    help = data;
    doCallback();
}


doCallback方法。

function doCallback() {
    alert(help);
}

关于javascript - jQuery-为什么我不能在$ .ajax中访问/设置我的var ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19707500/

10-11 02:27