martes, 7 de septiembre de 2021

CORS (Cross-Origin Resource Sharing) - Lecciones aprendidas

Estas son algunas lecciones aprendidas luego de haber tenido algunos problemas para implementar nuestras aplicaciones SPA (Angular - REST API) en nuestros servidores.

 ¿Qué es CORS?

Hay dos caminos al momento de habilitar CORS para un sitio web.

1 - A través de un Middleware dentro de la aplicación. Es conveniente hacerlo cuando no se tiene control sobre el servidor donde estará alojada la aplicación. En ese caso es la propia aplicación la que implementa el middleware que administra CORS.

Enable Cross-Origin Requests (CORS) in ASP.NET Core


2 - Configurando el servidor web (IIS). Hay que verificar que esté instalado el módulo general "CORS" y luego especificar los parámetros para cada sitio en el web.config. Esta es una opción mejor a la anterior porque permite modificar la configuración sin tocar el código pero requiere instalar el módulo general de CORS en el servidor.

IIS CORS module Configuration Reference 


Aprendiendo de nuestros errores:

- No sirve configurar HEADERS (de tipo "access-control-allow-origin") porque no funciona bien el "preflight".

- Por algún motivo en nuestro IIS dejó de funcionar el middleware del asp.net y tuvimos que configurar los sitios a través del web.config. Habría que probar desinstalando el CORS del servidor, tal vez así vuelve a funcionar el middleware.