Comment définir des en-têtes HTTP en Go (CORS, Content-Type et autres)
Bonjour à tous ! Je suis un développeur Go débutant et j'écris ma première API REST avec net/http. J'ai rencontré un problème : mon frontend (React, lancé sur localhost:3000) ne peut pas envoyer de requêtes au serveur (localhost:8080) à cause de CORS.
J'essaie de définir les en-têtes manuellement, mais quelque chose ne va pas. Voici mon code :
```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)
}
```
Le problème est que lorsque j'effectue une requête POST avec un corps JSON, le navigateur affiche toujours une erreur CORS. J'ai essayé d'ajouter les en-têtes à différents endroits — avant et après l'écriture de la réponse — mais le résultat est le même. J'ai aussi lu sur les middleware, mais je ne comprends pas comment les appliquer à toutes les routes à la fois.
Dites-moi comment faire correctement.