golang 設定 http response 響應頭的內容與坑

GoRustNeverStop發表於2017-11-23

golang 設定 http response 響應頭的內容與坑

用 golang 寫 http server 時,可以很方便可通過 w.Header.Set(k, v) 來設定 http response 中 header 的內容。

例如:w.Header().Set("Access-Control-Allow-Origin", "*") 。

但是需要特別注意的是某些時候不僅要修改 http header ,還要修改 http status code。

修改 http status code 可以通過:w.WriteHeader(code) 來實現,例如:w.WriteHeader(404) 。

如果這兩種修改一起做,就必須讓 w.WriteHeader 在所有的 w.Header.Set 之後,也就是 w.WriteHeader 後 Set Header 是無效的。

今天就遇到了這個問題,在一段程式碼中呼叫 w.Header.Set,怎麼折騰都無效,最後才發現其它程式碼段中先呼叫了 w.WriteHeader。

相關文章