如何在Go中设置HTTP头(CORS、Content-Type等)
大家好!我是一名Go新手开发者,正在用net/http编写我的第一个REST API。我遇到了一个问题:我的前端(React,运行在localhost:3000)由于CORS无法向服务器(localhost:8080)发送请求。
我尝试手动设置头,但似乎出了问题。这是我的代码:
```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)
}
```
问题在于,当我发送带有JSON体的POST请求时,浏览器仍然报CORS错误。我尝试在不同位置添加头——在写入响应之前和之后——但结果相同。我也读过关于middleware的内容,但不知道如何将其应用于所有路由。
请告诉我如何正确