Skip to content

Instantly share code, notes, and snippets.

@BaezCrdrm
Last active May 4, 2021 22:23
Show Gist options
  • Save BaezCrdrm/3daa72114e403ee737fa47c0918e4953 to your computer and use it in GitHub Desktop.
Save BaezCrdrm/3daa72114e403ee737fa47c0918e4953 to your computer and use it in GitHub Desktop.
CORS Node.js, Express y WebApp

CORS

Los errores de CORS son muy comunes de encontrar cuando se construye una WebApp. Para más conocimiento de qué es CORS, pueden acceder a este enlace CORS. Este tipo de errores se puede manejar desde el servidor sobre el cual se está realizando la petición.

Node.js y Express

En el archivo principal index.js podrán realizar la configuración correspodiente para manejar el acceso de los clientes.

  1. Establecer la lista de clientes permitidos.
const allowedOrigins = [
    'http://localhost:8081',
    'https://mydomain.com/'
];
  1. Establecer configuración de CORS. Esta función revisará si el cliente quien está realizando la petición se encuentra en la lista de clientes admitidos. Si lo está, permite la petición, si no, impide la conexión.
var corsOptionsDelegate = function (req, callback) {
    var corsOptions;
    if (allowedOrigins.indexOf(req.header('Origin')) !== -1) {
        corsOptions = { origin: true } // reflect (enable) the requested origin in the CORS response
    } else {
        corsOptions = { origin: false } // disable CORS for this request
    }
    callback(null, corsOptions) // callback expects two parameters: error and options
}
  1. Agrega la configuración en los endpoints correspondientes.
app.use("/", cors(corsOptionsDelegate), routing);
app.use("/compras", cors(corsOptionsDelegate), routerCompras);

app.all("*", cors(corsOptionsDelegate), (req, res) => res.status(404).send({
    success: false,
    msg: "This route does not exist"}));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment