У меня была такая же проблема. Использование косой черты вместо обратных косых черт (даже на машине Windows) исправило это для меня.
Вы можете использовать замыкание (через функцию самоиспускания) для захвата значения i
для каждого вызова цикла следующим образом:
for (var i in obj) {
(function(index) {
// you can use the variable "index" here instead of i
$.ajax(/script/).done(function(data){ console.log(data); });
})(i);
}
Вы можете просто создать настраиваемое поле в объекте, который вы отправляете в $ .ajax (), и это будет поле в «this», когда будет выполнен обратный вызов обещания.
Например:
$.ajax(
{ url: "https://localhost/whatever.php",
method: "POST",
data: JSON.stringify( object ),
custom: i // creating a custom field named "custom"
} ).done( function(data, textStatus, jqXHR) { var index = this.custom; } );
obj[index]
. Еще раз спасибо! – philtune 8 April 2012 в 00:56