在 golang 中启用 Cors 策略
Enable Cors policy in golang
我们如何使用 golang 在服务器端启用 cors 策略?
main.go
func main() {
defer config.CloseDatabaseConnection(db)
r := gin.Default()
dataRoutes := r.Group("api/item")
{
dataRoutes.GET("/", dataController.All)
dataRoutes.POST("/", dataController.Insert)
dataRoutes.GET("/:id", dataController.FindByID)
dataRoutes.PUT("/:id", dataController.Update)
dataRoutes.DELETE("/:id", dataController.Delete)
}
r.Run()
}
我找到了
func Cors(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html; charset=ascii")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers","Content-Type,access-control-allow-origin, access-control-allow-headers")
}
但我不确定我们在golang中是如何实现的?我在使用 c#
时使用了上面的代码,但在实现它时我陷入了 golang
。
如果您正在使用 gin-gonic
then you can use the CORS middleware,如下例所示。
如果您需要设置其他特定的 CORS headers,请参阅 cors.Config
上的文档。
import (
// your other imports ...
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
func main() {
defer config.CloseDatabaseConnection(db)
r := gin.Default()
r.Use(cors.New(cors.Config{
AllowOrigins: []string{"*"},
AllowMethods: []string{"POST", "PUT", "PATCH", "DELETE"},
AllowHeaders: []string{"Content-Type,access-control-allow-origin, access-control-allow-headers"},
}))
dataRoutes := r.Group("api/item")
{
dataRoutes.GET("/", dataController.All)
dataRoutes.POST("/", dataController.Insert)
dataRoutes.GET("/:id", dataController.FindByID)
dataRoutes.PUT("/:id", dataController.Update)
dataRoutes.DELETE("/:id", dataController.Delete)
}
r.Run()
}
我们如何使用 golang 在服务器端启用 cors 策略?
main.go
func main() {
defer config.CloseDatabaseConnection(db)
r := gin.Default()
dataRoutes := r.Group("api/item")
{
dataRoutes.GET("/", dataController.All)
dataRoutes.POST("/", dataController.Insert)
dataRoutes.GET("/:id", dataController.FindByID)
dataRoutes.PUT("/:id", dataController.Update)
dataRoutes.DELETE("/:id", dataController.Delete)
}
r.Run()
}
我找到了
func Cors(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html; charset=ascii")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers","Content-Type,access-control-allow-origin, access-control-allow-headers")
}
但我不确定我们在golang中是如何实现的?我在使用 c#
时使用了上面的代码,但在实现它时我陷入了 golang
。
如果您正在使用 gin-gonic
then you can use the CORS middleware,如下例所示。
如果您需要设置其他特定的 CORS headers,请参阅 cors.Config
上的文档。
import (
// your other imports ...
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
func main() {
defer config.CloseDatabaseConnection(db)
r := gin.Default()
r.Use(cors.New(cors.Config{
AllowOrigins: []string{"*"},
AllowMethods: []string{"POST", "PUT", "PATCH", "DELETE"},
AllowHeaders: []string{"Content-Type,access-control-allow-origin, access-control-allow-headers"},
}))
dataRoutes := r.Group("api/item")
{
dataRoutes.GET("/", dataController.All)
dataRoutes.POST("/", dataController.Insert)
dataRoutes.GET("/:id", dataController.FindByID)
dataRoutes.PUT("/:id", dataController.Update)
dataRoutes.DELETE("/:id", dataController.Delete)
}
r.Run()
}