Estoy haciendo varias llamadas jQuery ajax dentro de un bucle. Cada vez que regresa una de las llamadas ajax, necesito hacer referencia a un valor correspondiente a la llamada ajax original. Mi código actual no funciona correctamente, ya que el valor de la variable lskey
ha sido alterado por iteraciones de bucle adicionales.jQuery Llamada en Ajax perdiendo la referencia de variable local
Aquí está el código:
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); }
});
}
}
El problema es que lskey
está siendo alterado cada vez que se ejecuta el bucle, y por lo tanto la devolución de llamada de éxito no tiene una referencia al valor de lskey que existía en el momento de la llamada.
¿Cómo hago referencia al valor correcto de lskey
para cada devolución de llamada exitosa?
Muy útil, muchas gracias ... –
¡Escribí una consulta de búsqueda poco fiable en Google y BAM! primer resultado es tu respuesta, muchas gracias! ¡Y ASÍ gobierna! – NaturalBornCamper
Una explicación de por qué esto funciona habría ayudado. – dshgna