Dans le framework Go Gin, la configuration du Cross-Origin Resource Sharing (CORS) permet aux clients d'origines différentes pour accéder à vos ressources. Cependant, vous pouvez rencontrer des problèmes où les requêtes CORS ne renvoient pas le comportement attendu, comme dans le cas de l'utilisateur qui a reçu une réponse vide après l'envoi d'une requête OPTIONS.
Pour résoudre ce problème, nous pouvons analyser la réponse de l'utilisateur. middleware fourni et comparez-le à un logiciel fonctionnel exemple :
func CORSMiddleware() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Content-Type", "application/json") c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Max-Age", "86400") c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, X-Max") c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(200) } else { c.Next() } } }
func CORSMiddleware() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") 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") if c.Request.Method == "OPTIONS" { c.AbortWithStatus(204) return } c.Next() } }
Différences :
Par conséquent, pour résoudre le problème, l'utilisateur doit mettre à jour son middleware pour qu'il corresponde à l'exemple fonctionnel, notamment en corrigeant le code d'état d'abandon et en ajustant le nombre autorisé. méthodes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!