如何在多个ajax调用中处理数据

时间:2017-12-20 11:00:14

标签: javascript jquery ajax

我正试图在循环中调用多个ajax调用。

我要在完成每个请求后存储ajax调用请求数据。

就我而言,它将最终请求数据存储在所有响应中。

这是我的代码

for (var postdata in response) {
    postdata1 = JSON.stringify(response[postdata]);
    var part1 = "<div class='col-md-4'><div class='thumbnail'><img src='";
    var part2 = "' alt='Visualize Image' style='width:100%'> <div class='caption'><a href='#' class='btn btn-info btn-lg' data='" + postdata1 + "'><span class='glyphicon glyphicon-heart'></span> Like </a></div></div></div>";
    $.ajax({
        type: "POST",
        url: URL,
        crossDomain: true,
        data: postdata1,

        success: function (dataString) {

            $(".loader").css('display', 'none');

            var source = 'data:image/png;base64,' + dataString;

            console.log(postdata);

            $(".row").append(part1 + source + part2);

        }

    });
}

如何将每个postdata1值存储在各自的响应中?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解你想要保存什么,但也许你可以在循环之前创建一个数组并在jQuery ajax success例程中推送数据的是:

var ajaxResults = [];
for (var postdata in response) {
    postdata1 = JSON.stringify(response[postdata]);

    // ...

    $.ajax({
        // ...

        success: function (dataString) {
            // ...
            ajaxResults.push({
                "postdata1": postdata1,
                "dataString": dataString
            });
        }
    });
}

小心异步事件。我建议你在 last ajax调用结束时触发一个事件,以确保ajaxResults一致且完整。

如果您认为这是解决问题的方法,您可以接受此答案。 Here您可以阅读以下内容:)