En este post te mostraré cómo configurar, de manera manual (es decir, sin librerías ni paquetes) CORS para Node.js específicamente usando el Framework express.js.
Pasa que al configurar cors con un paquete no podía especificar claramente los encabezados adicionales como Access-Control-Allow-Headers.
Agregando cors manualmente
Para ello tenemos que crear un middleware que añada un encabezado a la petición. Creamos nuestra app de express:
const app = express();
Ahora agregamos un middleware sencillo con app.use
. Especificamos una función que recibe la petición, la respuesta y la siguiente función en la pila de middleware:
app.use((req, res, next) => {
res.set("Access-Control-Allow-Credentials", "true");
res.set("Access-Control-Allow-Origin", "http://tu_dominio.com");
res.set("Access-Control-Allow-Headers", "Content-Type");
res.set("Access-Control-Allow-Methods", "OPTIONS,GET,PUT,POST,DELETE");
next();
});
En res (que es la respuesta que le enviamos al cliente) establecemos precisamente los encabezados para habilitar CORS (aquí puedes agregar todos los que tú quieras) y finalmente invocamos a next
.
Como puedes ver yo he agregado unos encabezados que eran requeridos para mi aplicación web, aunque en tu caso puede que solo necesites el de Access-Control-Allow-Origin
.
Finalmente quiero mencionar que deberías agregar este fragmento de código en la parte superior del código; es decir, lo más cercano a cuando creas la app de express.