Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

154
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!