Setting HTTP headers

I’m trying to set a header in my Go web server. I’m using gorilla/mux and net/http packages.

I’d like to set Access-Control-Allow-Origin: * to allow cross domain AJAX.

Here’s my Go code:

func saveHandler(w http.ResponseWriter, r *http.Request) {
// do some stuff with the request data

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/save", saveHandler)
    http.Handle("/", r)
    http.ListenAndServe(":"+port, nil)

The net/http package has documentation describing sending http request headers as if it were a client - I’m not exactly sure how to set response headers?

1 Like

Never mind, I figured it out - I used the Set() method on Header() (doh!)

My handler looks like this now:

func saveHandler(w http.ResponseWriter, r *http.Request) {
    // allow cross domain AJAX requests
    w.Header().Set("Access-Control-Allow-Origin", "*")

Maybe this will help someone as caffeine deprived as myself sometime :slight_smile:


1 Like