Cómo configurar encabezados HTTP en Go (CORS, Content-Type y otros)
¡Hola a todos! Soy un desarrollador Go principiante y estoy escribiendo mi primer REST API con net/http. Me encontré con un problema: mi frontend (React, ejecutándose en localhost:3000) no puede enviar solicitudes al servidor (localhost:8080) debido a CORS.
Estoy intentando configurar los encabezados manualmente, pero algo no funciona. Aquí está mi código:
```go
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
fmt.Fprintf(w, `{"message": "Hello"}`)
}
func main() {
http.HandleFunc("/api", handler)
http.ListenAndServe(":8080", nil)
}
```
El problema es que cuando hago una solicitud POST con un cuerpo JSON, el navegador sigue mostrando un error de CORS. He intentado agregar los encabezados en diferentes lugares — antes y después de escribir la respuesta — pero el resultado es el mismo. También he leído sobre middleware, pero no entiendo cómo aplicarlos a todas las rutas a la vez.
Díganme cómo hacerlo correctamente.