Mendayakan CORS dalam Rangka Kerja Go Gin
Rangka kerja Go gin menyediakan perisian tengah yang berkuasa untuk membolehkan CORS (Perkongsian Sumber Silang Asal) dalam anda aplikasi. Dengan menambahkan perisian tengah ini pada apl anda, anda boleh membenarkan permintaan daripada asal yang berbeza untuk mengakses titik akhir API anda.
Pertimbangkan pelaksanaan perisian tengah CORS berikut:
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() } } }
Walau bagaimanapun, jika menggunakan hasil perisian tengah ini dalam kod status 200 OK tetapi tiada tindakan lanjut selepas permintaan OPTION, anda mungkin telah terlepas perkara penting langkah:
Betulkan:
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() }
}
pra>
Dalam perisian tengah yang dikemas kini, c.AbortWithStatus(204) akan mengembalikan status respons 204 Tiada Kandungan tanpa sebarang badan, menunjukkan permintaan OPTIONS berjaya dan membenarkan pelanggan meneruskan permintaan sebenar.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Peranti Tengah CORS dalam Go Gin dengan Betul untuk Mengendalikan Permintaan OPTIONS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!