jquery ajax循环只返回最后一个值

标签 jquery ajax

我对几个不同的服务进行了 ajax 调用。我知道我的数组 var log 正在被每次连续调用覆盖,但我不知道如何更改逻辑以附加下一个数组而不是覆盖。

$.ajax($.extend({}, ajaxDefaults, source, {
                data: data,
                success: function(events) {
                    events = events || [];
                    var res = applyAll(success, this, arguments);
                    if ($.isArray(res)) {
                        events = res;
                    }
                    callback(events);


                  var log = log || [];
                      for (var i=0; i<events.length; i++) {
                        log.push(events[i]);
                    }
                    console.log(log);

                },
                error: function() {
                    applyAll(error, this, arguments);
                    callback();
                },
                complete: function(events) {
                    applyAll(complete, this, arguments);
                    popLoading();

                }
            }));

最佳答案

这只是一个范围问题。您正在 $.ajax success() 函数内部重新声明“var log”(从而覆盖它)。在 $.ajax 之外声明 var log 并将新结果推送到该数组中。

尝试以下操作:

var log = [];
$.ajax($.extend({}, ajaxDefaults, source, {
    data: data,
    success: function(events) {
        events = events || [];
        var res = applyAll(success, this, arguments);
        if ($.isArray(res)) {
            events = res;
        }
        callback(events);

        for (var i=0; i<events.length; i++) {
            log.push(events[i]);
        }
        console.log(log);

    },
    error: function() {
        applyAll(error, this, arguments);
        callback();
    },
    complete: function(events) {
        applyAll(complete, this, arguments);
        popLoading();

    }
}));

关于jquery ajax循环只返回最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908972/

相关文章:

javascript - 如何使用 ajax 发布表单并返回数组中的数据?

javascript - 除非满足条件,否则 SwiperJS 会阻止 slideNext

jquery - 为什么 ('#formId' ).trigger ('submit' ) 会导致我的表单多次发布,而 ('formId' ).trigger ('submit' ) 不会?

javascript - 设置间隔和 AJAX

javascript - 使用 jquery 禁用复选框不起作用

javascript - 如何在鼠标悬停时在完整日历中显示开始和结束时间?

javascript - 工具提示仅删除一个功能

c# - 错误 : Invalid postback or callback argument

php - 如何在 Facebook 等消息发送时发出通知

c# - 在不使用回发的情况下调用 Web 服务