在for循环内的xhr内调用ajax

时间:2016-12-30 17:03:55

标签: jquery ajax model-view-controller xmlhttprequest

我试图在循环xhr请求中调用ajax但是ajax结果只产生了最后一个......或者只是一次..

function base64ToImage(base64data,ctr) {

    $.ajax({
        method: "POST",
        url: "ConvertB64",
        async: false,
        data: {
            base64datastring: base64data, imgctr: ctr
        },
        success: function (data) {
            console.log(data);
        }
    })

        .done(function (msg) {
            console.log(msg);
        });
}

这里是ajax

driver.findElement(By.Name("button_click")).click();

所以我要做的是......我正在将一个对象url转换为blob然后传递该blob以转换为图像然后我返回我的img标记的图像位置。

在xhr一侧的

我能够很好地获得blob数据,但转换为图像只发生一次。它是最后一个blob。

我正在使用mvc。我尝试创建一个像xhr [ctr]这样的阵列xhr,我还添加了asynch:false。

感谢

2 个答案:

答案 0 :(得分:0)

我认为问题是你的ctr变量正在被循环的所有再现共享,并且总是等于该循环中的最终值。尝试使用传递到.each()函数的索引:

$("#txtArea").contents().find('img').each(function (i) {
    ...
    ...
    base64ToImage(base64data, i+1); //index starts with 0 so adding 1
});

答案 1 :(得分:0)

尝试使第一个ajax请求同步并检查.....因为你同时发送了多个ajax请求,所以没有订购响应,这可能是问题