Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengkonfigurasi Perisian Tengah CORS dalam Rangka Kerja Gin Go dengan Betul?

Bagaimana untuk Mengkonfigurasi Perisian Tengah CORS dalam Rangka Kerja Gin Go dengan Betul?

Patricia Arquette
Lepaskan: 2024-12-23 03:00:54
asal
222 orang telah melayarinya

How to Properly Configure CORS Middleware in Go's Gin Framework?

Rangka Kerja Go Gin: Mengendalikan CORS (Perkongsian Sumber Silang Asal)

Dalam rangka kerja gin Go, mengkonfigurasi Perkongsian Sumber Silang Asal (CORS) membolehkan pelanggan dari asal yang berbeza untuk mengakses sumber anda. Walau bagaimanapun, anda mungkin menghadapi isu apabila permintaan CORS tidak mengembalikan gelagat yang dijangkakan, seperti dalam kes pengguna yang mengalami respons kosong selepas menghantar permintaan OPTIONS.

Untuk menyelesaikan isu ini, kami boleh menganalisis pengguna perisian tengah disediakan dan bandingkan dengan perisian yang berfungsi contoh:

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()
        }
    }
}
Salin selepas log masuk
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()
    }
}
Salin selepas log masuk

Perbezaan:

  • Hentikan kod status: Perisian tengah yang berfungsi dibatalkan dengan kod status 204 (Tiada Kandungan) untuk permintaan OPTIONS, manakala perisian tengah pengguna dibatalkan dengan 200 (OK).
  • Kaedah yang dibenarkan: Perisian tengah yang berfungsi hanya membenarkan kaedah POST, OPTIONS, GET dan PUT, manakala perisian tengah pengguna termasuk PADAM dan KEMASKINI.

Oleh itu, untuk menyelesaikan masalah, pengguna harus mengemas kini perisian tengah mereka agar sepadan dengan contoh yang berfungsi, terutamanya dengan membetulkan kod status batalkan dan melaraskan kaedah yang dibenarkan.

Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi Perisian Tengah CORS dalam Rangka Kerja Gin Go dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan