Jestem względnie nowym użytkownikiem oprogramowania node.js, Express i aplikacji mobilnych i napotkałem problem, który, jak sądzę, ma związek z wysyłaniem nagłówków za pomocą Express.Nagłówki nie ustawiają się z przekierowaniem za pomocą pliku node.js/Express
Użytkownik zaczyna na stronie głównej "/", a nie zalogowany, a następnie klika przycisk, aby przejść do strony logowania. Kiedy złożyć swoją nazwę użytkownika i hasło „/ validate_signin”, powinny one zostać przekierowany z powrotem do strony głównej, tym razem na stronie głównej pokazuje się inaczej, ponieważ są one rejestrowane w
Przekierowanie działało tak:.
res.redirect('/');
Działa to dobrze na moim laptopie, ale na moim telefonie komórkowym przekierowuje do "/", w swoim starym stanie, prawdopodobnie z powodu buforowania. Jeśli odświeżę stronę w telefonie, "/" wyświetli się tak, jak powinno.
Znalazłem ten post: How to control web page caching, across all browsers?
próbowało ustawić nagłówki w dwóch następujących sposobów (oddzielnie), ale nie wydają się być wysyłania:
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
});
Oto nagłówki które aktualnie otrzymuję:
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
Jakieś pomysły?
Wielkie dzięki.
Te nagłówki powinny być zapisane na stronie, której nie chcesz buforować ('/'), a nie na stronie, na której przekierowujesz, prawda? –
Prawidłowe. Tak, prawdopodobnie umieszczam je w niewłaściwym miejscu. Idę o to popatrzeć. –
Twój problem nie dotyczy buforowania przeglądarki. Z jakiegoś powodu Express przesyła 304 zamiast rzeczywistego przekierowania, a przeglądarka odpowiada odpowiednio (tzn. Zachowując starą wersję). To brzmi jak jakieś wewnętrzne buforowanie wykonywane przez Express; czy przypadkiem używasz express.static do obsługi danej strony? – ebohlman