How do I add CORS headers safely?

To safely add CORS (Cross-Origin Resource Sharing) headers in a Go application, you can use the built-in `net/http` package. The following example demonstrates how to set up a simple HTTP server that includes the necessary CORS headers to allow specific origins.

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { // Add CORS headers w.Header().Set("Access-Control-Allow-Origin", "http://example.com") // replace with your allowed origin w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS") w.Header().Set("Access-Control-Allow-Headers", "Content-Type") if r.Method == "OPTIONS" { // If it's a preflight request, just return w.WriteHeader(http.StatusOK) return } // Your normal handler logic here fmt.Fprintf(w, "Hello, CORS enabled world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

go cors go http server cors headers enable cors go cross-origin resource sharing