Wykonuję kilka wywołań ajax jQuery w pętli. Za każdym razem, gdy jeden z wywołań ajax zwraca, muszę odwołać się do wartości odpowiadającej oryginalnemu wywołaniu ajax. Mój obecny kod nie działa poprawnie, ponieważ wartość zmiennej lskey
została zmieniona przez kolejne iteracje pętli.jQuery Połączenie Ajax w pętli utraty lokalnej zmiennej referencyjnej
Oto kod:
for (var i = 0, len = localStorage.length; i < len; i++) {
var lskey = localStorage.key(i);
if (lskey.substr(0, 4) === 'form') {
var postdata = localStorage.getItem(lskey); // Get the form data
$.ajax({
type: "POST",
async: "false",
url: "/Profile/PostForm",
data: postdata,
success: function (data) {
$('#rollinginfo').append('<br>' + data + ',key=' + lskey);
localStorage.removeItem(lskey); // Remove the relevant localStorage entry
}
, error: function (data) { $('#rollinginfo').append('<br />ERR:' + data); }
});
}
}
Problemem jest to, że lskey
jest zmieniany za każdym razem, gdy pętla wykonuje, a zatem zwrotna sukces nie mają odniesienia do wartości lskey, które istniały w chwili połączenia.
Jak mogę podać prawidłową wartość lskey
dla każdego oddzwonienia sukcesu?
Bardzo przydatne, bardzo dziękuję ... –
Napisałem podejrzane dziwne zapytanie w Google i BAM! Pierwszym wynikiem jest twoja odpowiedź, wielkie dzięki! I TAK rządzi! – NaturalBornCamper
Wyjaśnienie, dlaczego to działa, pomogłoby. – dshgna