Sono relativamente nuovo a node.js, Express e allo sviluppo mobile e ho riscontrato un problema che penso abbia a che fare con l'invio di intestazioni con Express.Le intestazioni non impostano con il reindirizzamento utilizzando node.js/Express
L'utente inizia alla pagina iniziale '/', non ha effettuato l'accesso, quindi fa clic su un pulsante per andare alla pagina di accesso. Al momento della presentazione il loro nome utente e password per '/ validate_signin', dovrebbero essere reindirizzati alla home page, questa volta con la home page che mostra in modo diverso perché sono registrati nel
Il reindirizzamento funzionava così:.
Questo funziona perfettamente sul mio portatile, ma sul mio telefono cellulare reindirizza a "/", nel suo stato precedente, presumibilmente a causa del caching. Se aggiorno la pagina sul telefono, "/" verrà visualizzato come dovrebbe.
ho trovato questo post: How to control web page caching, across all browsers?
hanno cercato di impostare le intestazioni nei seguenti due modi (a parte), ma non sembrano essere l'invio:
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
});
Ecco le intestazioni che attualmente sto ricevendo:
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
Qualche idea?
Molte grazie.
Queste intestazioni devono essere scritte nella pagina che non si desidera memorizzare nella cache ('/'), non nella pagina in cui si sta eseguendo il reindirizzamento, giusto? –
corretto. Sì, probabilmente li sto mettendo nel posto sbagliato. Andando a guardare in questo. –
Il tuo problema non riguarda il caching del browser. Per qualsiasi motivo, Express sta inviando un 304 anziché un reindirizzamento effettivo e il browser sta rispondendo in modo appropriato (ovvero mantenendo la versione precedente). Sembra una sorta di caching interno fatto da Express; stai per caso usando express.static per servire la pagina in questione? – ebohlman