2 回答
TA贡献1802条经验 获得超6个赞
在 CORS 下使用:
func CORS() gin.HandlerFunc {
// TO allow CORS
return func(c *gin.Context) {
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, DELETE")
if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(204)
return
}
c.Next()
}
}
接下来,您必须将 cors 添加到您的路线中:
router := gin.Default()
router.Use(CORS())
另外,最好使用 POST 方法而不是 PATCH。我很确定它会解决你的问题。
TA贡献1807条经验 获得超9个赞
您可以通过使用POST
方法而不是PATCH
.
例如:
func main() { router := gin.Default() rg := router.Group("api/v1/photo") { rg.POST("/", uploadFile) } router.Use(cors.Default()) router.Run()}
潜在的 CORS 问题
您可能需要在 Go 服务中设置正确的跨域资源共享。
一些额外的参考
所以回答常见 HTTP 方法之间的差异 - PUT、POST 和 PATCH 有什么区别?.
PATCH:提交对资源的部分修改。如果您只需要更新资源的一个字段,您可能需要使用 PATCH 方法。
- 2 回答
- 0 关注
- 218 浏览
添加回答
举报