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

156
Vistas
PassportJS Access-Control-Allow-Headers al realizar la redirección Express

Recibo el siguiente error:

XMLHttpRequest no puede cargar http://localhost:4200/#/partners . El tipo de contenido del campo de encabezado de solicitud no está permitido por Access-Control-Allow-Headers en la respuesta de verificación previa.

fragmento de server.js:

 app.use(function(req, res, next){ res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); res.header('Access-Control-Allow-Credentials', "true"); next(); }); . . . app.post("/login", function(req, res, next) { passport.authenticate("local", function (err, user, info) { if (err) { return next(err); } if (!user){ return res.redirect(home_connection+'/#/'); } req.logIn(user, function(err){ if(err){ return next(err); } return res.redirect(home_connection+"/#/partners"); }); })(req, res, next); } );

Tenga en cuenta que este error aún persiste incluso después de configurar los encabezados Access-Control-Allow-* . La ruta a la que Express debe redirigir es una ruta Angular2, /#/partners .

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Usé Angular2 para redirigir en lugar del servidor Node.

En lugar de redirigir a la ruta dentro del servidor Node, solo devolví una confirmación de éxito como respuesta. Cuando Angular2 recibe la confirmación de éxito, enruta la aplicación a la ubicación adecuada.

Modifiqué /login a lo siguiente:

 app.post("/login", cors(), passport.authenticate("local"), function(req, res){ res.status(200).json(req.user); });

Aviso res.status(200).json(req.user); simplemente devuelve el objeto de usuario.

El fragmento de código Angular2 que llama a /login parece (tenga en cuenta que loginUser es una función en UserService que llama a las publicaciones a /login ):

 this.userService .loginUser(this.user.phone, this.third.value.code.replace(/ /g, '')) .then((resp) => { if(resp) this.router.navigate(['/partners']); else { this.third.setValue({"code":""}); this.invalidCode = true; } }).catch((err) => { this.invalidCode = true; });

Tenga en cuenta que this.router.navigate(['/partners']); maneja la redirección a /partners .

about 4 years ago · Santiago Trujillo 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