for循环在Ajax调用中重复返回相同的值

Zes*_*anA 1 javascript variables jquery for-loop

我正在尝试使用for循环遍历一系列URL并将它们用于ajax调用.在ajax调用之外,i正确地更改值,但是当我尝试从调用内部访问它时,它总是返回2.它正确循环但具有相同的值而不是循环0, 1等.

var i = 0;
for(i = 0; i <= 1; ++i) {
    console.log("Value outside of call = " + i);
    $.ajax({
        url : urls[i],
        dataType : 'jsonp',
        timeout : 3000,
        count : 0,
        success : function(data) {
            console.log("Value inside of call = " + i);
            shotInfo[i] = data;
        },
        error : function() {
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

我也试过使用while循环,但它具有相同的效果.

Lig*_*ica 5

你只有一个变量i.当回调触发时,它的最终值为2.

封闭.