Tengo una búsqueda simple que ocurre después de hacer clic en un botón para indicar que me gusta una publicación:
function like(post_id){ fetch(`/like/${post_id}`); } router.get('/like/:post_id/', authController.isLoggedIn, async (req, res, next) => { try { //liking req.flash("flash", 'You liked the post!'); return res.redirect('back'); } catch{ req.flash("flash", 'Like failed :('); return res.redirect('back'); } });En teoría, esto debería funcionar y luego redirigir de nuevo a la misma página con el mensaje flash.
¡En lugar de hacer eso, carga la página con el mensaje flash como una solicitud de recuperación que nunca solicité!
Debería volver a cargar la página para actuar/terreno/... no cargarla lateralmente. ¿Cuál es mi problema? ¿Necesito finalizar la búsqueda de alguna manera antes de redirigir?
El error es usar fetch en primer lugar. Así es como conseguí que funcionara:
function like(post_id){ document.body.innerHTML += `<form id="jsForm" action="/like/${post_id}" method="GET"><input type="hidden" name="a" value="a"></form>`; document.getElementById("jsForm").submit(); }