Soy relativamente nuevo en node.js, Express y desarrollo móvil, y me he encontrado con un problema que creo que tiene que ver con el envío de encabezados con Express.Encabezados no configurados con redirección usando node.js/Express
El usuario comienza en la página de inicio '/', no ha iniciado sesión, luego hace clic en un botón para ir a la página de inicio de sesión. Al presentar su nombre de usuario y contraseña a '/ validate_signin', deben ser redireccionado a la página de inicio, esta vez con la página de inicio que muestra de manera diferente, ya que se registran en
La redirección trabajó como esto:.
res.redirect('/');
Esto funciona bien en mi computadora portátil, pero en mi teléfono móvil redirige a '/', en su estado anterior, presumiblemente debido a la colocación en caché. Si actualizo la página en el teléfono, '/' se mostrará como debería.
me encontré con este post: How to control web page caching, across all browsers?
han tratado de establecer cabeceras de las dos maneras siguientes (por separado), pero que no parece ser el envío:
res.header("Cache-Control", "no-cache, no-store, must-revalidate");
res.header("Pragma", "no-cache");
res.header("Expires", 0);
res.writeHead(302, {
"location": "/",
"Cache-Control" : "no-cache, no-store, must-revalidate",
"Pragma": "no-cache",
"Expires": 0
});
Éstos son los encabezados que estoy recibiendo actualmente:
HTTP/1.1 304 Not Modified
X-Powered-By: Express
Date: Fri, 13 Jul 2012 17:35:18 GMT
Cache-Control: public, max-age=0
Last-Modified: Fri, 13 Jul 2012 12:32:12 GMT
Etag: "3223-1342182732000"
Accept-Ranges: bytes
Connection: keep-alive
¿Alguna idea?
Muchas gracias.
Esos encabezados deberían estar escritos en la página que no desea almacenar en caché ('/'), no en la página en la que está redirigiendo, ¿no? –
Correcto. Sí, probablemente los estoy colocando en el lugar equivocado. Yendo a mirar esto. –
Su problema no implica el almacenamiento en caché del navegador. Por alguna razón, Express está enviando un 304 en lugar de una redirección real, y el navegador está respondiendo adecuadamente (es decir, manteniendo la versión anterior). Suena como un tipo de almacenamiento en caché interno hecho por Express; ¿Está usted por casualidad usando express.static para servir la página en cuestión? – ebohlman