一架梯子,一头程序猿,仰望星空!
Golang GIN框架面试题 > 内容正文

Gin 框架中如何处理跨域请求?


问题简答

Gin 框架中处理跨域请求可以通过中间件的方式来实现,可以使用 gin-contrib/cors 包提供的中间件来处理。cors(跨域资源共享)是一个机制,它使用额外的 HTTP 头来告诉浏览器,允许那些域名可以合法访问API。

问题详解:

下面是Gin处理跨域请求的例子

package main

import (
    "github.com/gin-gonic/gin"
    // 导入cors包
    "github.com/gin-contrib/cors"
)

func main() {
    r := gin.Default()

    // 配置跨域中间件
    config := cors.DefaultConfig()
    config.AllowOrigins = []string{"http://localhost:8080"} // 允许什么域名访问,支持多个域名
    config.AllowMethods = []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"} // 允许的 HTTP 方法
    config.AllowHeaders = []string{"Origin", "Content-Length", "Content-Type"} // 允许的 HTTP 头
    // 设置cors中间件
    r.Use(cors.New(config))

    // 测试api
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })

    r.Run() // 启动服务
}