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

403
Vistas
¿Cómo superar CORS de Angular 2 a Node/express?

Tengo este código en mi aplicación express

 var app = require('express')() var bodyParser = require('body-parser') var cors = require('cors') app.use(bodyParser.urlencoded({ extended: true })) app.post('/user', cors(), function (req, res) { res.send(req.body.username); }) app.listen(3000, function () { console.log('Example app listening on port 3000!') })

Y esta es mi función angular 2 que envía la solicitud.

 getData() { let headers = new Headers(); headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); let params = 'username=test'; this.http.post('http://localhost:3000/user', params, {headers: headers}) .map(res => res.json()) .subscribe(data => {}); }

Me sale este error en la consola:

XMLHttpRequest no puede cargar http://localhost:3000/user . La respuesta a la solicitud de verificación previa no pasa la verificación de control de acceso: no hay un encabezado 'Access-Control-Allow-Origin' en el recurso solicitado. Por lo tanto, no se permite el acceso al origen ' http://localhost:4200 '.

Pero cuando envío una solicitud usando jquery ajax, funciona sin errores.

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

0

Puede habilitar CORS en nodejs/express con un código como este:

 app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", '*'); //<-- you can change this with a specific url like http://localhost:4200 res.header("Access-Control-Allow-Credentials", true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header("Access-Control-Allow-Headers", 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json'); next(); });

Así que tu código debería verse así:

 var app = require('express')() var bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: true })) app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", '*'); //<-- you can change this with a specific url like http://localhost:4200 res.header("Access-Control-Allow-Credentials", true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header("Access-Control-Allow-Headers", 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json'); next(); }); app.post('/user', function (req, res) { res.send(req.body.username); }) app.listen(3000, function () { console.log('Example app listening on port 3000!') })
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