Internet Explorer cachea las peticiones Ajax en jQuery
No se si en otros framework esté pasando, pero lo que es jquery me ha vuelto loco.
Una petición que tenia que mandarme data nueva constantemente se quedaba con los datos que recuperaba al principio pero funcionaba en todos los otros navegadores. TODOS.
La solución ES UNA BOLUDEZ:
1 |
$.ajaxSetup({ cache: false }); |
Pongan esta linea al principio del js o antes de la petición ajax. Afecta a cualquier tipo de llamada: $.post(), $.get(), $.ajax().
Tenía el mismo problema. Todo funcionaba bien excepto en IE 6,7,8, le agregué la línea como tu decias y me funcionó perfecto.
Muchas gracias.
Muy bueno tu aporte. Me solucionaste el problema.
Gracias
IE SUKZ
Excelente!! ya me estaba volviendo loco por el estupido IE Grax!!
Funcionó perfecto. Muchas gracias!
Genial!!, Estoy haciendo un modulo de ventas y algunas peticiones ajax de type Get, tenian problemas.
Moraleja: No siempre es bueno la chaché
Excelente compadre me salvo la pega !!
Dosmil Millones de GRACIAS! 🙂
Joder… vaya marrón nos acabas de quitar de encima… puto amo =)
Muy buen Datos muchas gracias funcionó en One!!!
He visto la luz!!!!
Gracias!!!
Muchas gracias, funciona así correctamente.!!!
Bárbaro, funcionó perfectamente. Gracias!
Hola, he intentado colocar esta línea en dos js que tengo, pero mi web sigue sin funcionar en ie. Un js es el query y el otro es uno que he creado para cargar select en función de otros select haciendo consultas a una base de datos. ¿Dónde tendría que colocar exactamente la línea?, porque creo que no lo estoy haciendo bien. Gracias.
podrías ponerme el código en un comentario asi lo veo?
La línea la he puesto antes de las dos funciones pensando que sería ese el sitio donde colocarla, pero no va
Maria perdón, ayer estaba liado. El codigo se ve bien, lo unico que puede ser un poco peligroso es “toLoad” porque por ejemplo:
Si tenemos esto:
y estamos en http://www.tupagina.com, el script entiende que tiene que ir a http://www.tupagina.com/codigos.php?numex….
Pero si estamos en
http://www.tupagina.com/alguna/seccion la cosa cambia porque va a querer acceder a http://www.tupagina.com/alguna/seccion/codigos.php?numex….
La solucion es poner un “/” delante:
Al margen de eso no veo problema con este script. te funciona en firefox y chrome?
ah y $.ajaxSetup({ cache: false }); va fuera de las funciones. Es un configurador global.
Sí, en chrome y firefox funciona sin ningún problema, he añadido la / y nada, en ie al seleccionar la opción del primer select no me carga el segundo con los datos correspondientes.
Gracias de todas maneras.
y no será algo como esto? http://ecapy.com/no-funciona-jquery-change-en-internet-explorer/
Voy a hacer pruebas y te comento
No hay manera,
El código que he probado sería éste. Fíjate que la parte de reconocer ie está entre comentarios. Si se los quito no funciona la del change, reconoce el click pero no se cargan los datos. Se queda como una lista grande pero vacía.
Por fiiiiiinnnn, el problema estaba en las dos últimas líneas
mysql_free_result($row);
mysql_close($conexion);
Las he quitado y ya funciona sin problema en todos sitios.
Muchas gracias por todo y perdona las molestias.
Me alegro mucho por ti 🙂
Me acabo de dar cuenta de que el problema está en codigos.php. El evento lo reconoce pero no carga bien los datos.
Si cargo el valor con algo fijo funciona, si depende del select y while no lo hace en ie.
Gracias. se soluciono mi problema con solo poner esa linea de codigo principio.Muchas gracias.
Amigo hice lo que recomiendas y no me funciona en IE9
este es el codigo
$.ajaxSetup({ cache: false });
$(function(){
var claveB =””;
$.ajax({
type: “POST”,
url: “Imprime.php”,
data:{id: claveB}, // Adjuntar los campos del formulario enviado seria asi: data: $(“#formulario”).serialize(),
success: function(data)
{
$(“#div-imprime”).html(data); // Mostrar la respuestas del script PHP.
}
});
return false; // Evitar ejecutar el submit del formulario.
});
No se porque no me funciona…
Sos un grande, me solucionaste la vida