Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda