En este post te mostraré cómo habilitar o permitir CORS en Go cuando se usa Gorilla Mux, un enrutador de Go.
Funciones para habilitar CORS
Para hacer esto, necesitamos colocar un middleware que agregue ciertos encabezados a la petición y después llame a la siguiente función.
Primero veamos las dos funciones, toma en cuenta que estamos configurando el dominio http://localhost, es decir, se permitirán las llamadas desde ese dominio (puedes cambiarlo en tu caso):
Como puedes ver, son dos. Una de ellas agrega el encabezado de Access-Control-Allow-Origin
para el método OPTIONS
(tuve que agregarlo para evitar problemas al usar fetch en JavaScript) y la otra función agrega ese encabezado además de otros para todas las demás peticiones.
Usar middleware de CORS en Mux
Ahora que tenemos definida la función, solo debemos invocar a enableCors
pasándole el enrutador de Go con Mux. Si, por ejemplo, tenemos nuestro router así:
Debemos invocar a la función así:
Todo esto se puede ver en uso en la API de Go con MySQL.