Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
res.redirected devuelve falso incluso cuando el backend devuelve una redirección

Estoy tratando de crear una página de inicio de sesión que redirige al usuario a la página de inicio después de iniciar sesión correctamente usando nodejs y fetch. Aquí está el código de backend.

 app.post('/login',(req,res)=> { user.findOne(req.body,(err,info)=>{ if(err) { res.json(`error in finding item in database ,error info ${err}`); } else if(!info) { console.log('user doesnot exist'); let message='*please enter a valid username and password'; res.json(message); } else{ console.log(info); res.redirect('/'); } }); });

Este es el código de la parte delantera

 form.addEventListener('submit',(e)=>{ e.preventDefault(); const username=document.getElementById('username').value.trim(); const password=document.getElementById('password').value; fetch('/login',{ method:'POST', headers:{ 'Content-Type':'application/json' }, redirect:"manual", body:JSON.stringify({username,password}) }).then((res)=>{ if(res.redirected) { console.log(`redirected to ${res.url}`); window.location.href=res.url; // return; } else{ console.log("no") return res.json() } }) .then((data)=>{ if(data) alt.innerText=data;//showing the error on the page }) .catch((err)=>{throw err}) })

Cuando ingreso las credenciales correctas, imprime la información en la consola, lo que significa que está dentro de else e idealmente debería redirigir a la página de inicio. Pero nunca ingresa a la declaración if (res.redirected) , lo que significa que devuelve falso.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dado que algunas versiones anteriores de Chrome no leen res.redirected , y en aras de lograr códigos más limpios y redireccionamientos inesperados (por ejemplo, HTTP a HTTPS), es posible que desee establecer res.direct('/') en res.json({ redirect: '/' }) en su lugar.

 const results = await fetch(....).then(res.json()); if (results.redirect) { window.location.href = results.redirect } if (results.data) { //do something }

back-end

 if (info) { return res.json({ data: info }); } else { return res.json({ redirect: '/', error: true }) }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda