Hola, despues de responder una duda me he propuesto poner estos tips que son muy importantes a la hora de usar ajax, no creo que me extienda demasiado, pero aunque sea corto nos ahorrará muchos dolores de cabeza.
1º usar encodeURIComponent:
Cuando enviamos datos con AJAX, ya sea GET o POST pueden surgir fallos relacionados con los parametros, ya sea post o get.
Independientemente del metodo usado, la estructura será:
"nombre=valor1&mensaje=valor2"
Imaginemos que el valor1 viene dado por un input donde escribo "westwest" y el segundo valor es un textarea (o input...) que pone "Ese post es un copy&paste ¬¬"
Al enviar quedará:
"nombre=westwest&mensaje=Ese post es un copy&paste ¬¬"
Pero... verdaderamente se enviará el mensaje que queremos? SI hacemos la prueba veremos que "mensaje" contendrá "Ese post es un copy", y se añade un nuevo parametro llamado "paste ¬¬"
¿Por qué? El &, inicia otro parametro.
Por ello, encodeURIComponent cambia caracteres que afectan a la URL por una equivalencia %XX que solucionará nuestro problema.
2º cache:
Los navegadores guardan a veces el código de una web para que cargue más rápido en otro momento, esto es tedioso si debemos abrir la misma web con ajax, aunque haya cambiado, devolverá lo mismo.
Se soluciona añadiendo un parametro único a la URL, lo mejor es usar el "equivalente" a time() de PHP en JS, que es:
var date = new Date.getTime();
url += "&time=" + date;
NOTA: Si usas jQuery, puedes usar cache: false en el $.ajax; si lo usas continuamente, puedes usar ajaxSetup para establecerlo por defecto, de esta manera:
$.ajaxSetup({cache:false});
Saludos.