package main import ( "github.com/gin-gonic/gin" "log" "net/http" ) func main() { log.Set Flags (log.LstdFlags | log.L short file) app := gin.Default() app.Use(cors) //这是设置中间件,其目的是响应跨站请求 app.GET("/api", func(c *gin.Context) { view(c) c. JSON (200, gin.H{"code": 201}) //根据返回的code值区别不同的请求,201是GET }) app.POST("/api", func(c *gin.Context) { view(c) c.JSON(200, gin.H{"code": 202}) //根据返回的code值区别不同的请求,202是POST }) app.PUT("/api", func(c *gin.Context) { view(c) c.JSON(200, gin.H{"code": 203}) //根据返回的code值区别不同的请求,203是PUT }) app.DELETE("/api", func(c *gin.Context) { view(c) c.JSON(200, gin.H{"code": 204}) //根据返回的code值区别不同的请求,204是DELETE }) _ = app.Run("0.0.0.0:8888") } func view(c *gin.Context) { _ = c. Request .ParseForm() //解析form数据 values1 := c.Request.Form //获取到get、post的数据 log.Println(values1) values2 := c.Request.PostForm //只获取到post数据 log.Println(values2) } func cors(c *gin.Context) { // Access-Control-Allow-Origin,标识允许哪个域的请求,*代表所有的域请求 c. Header ("Access-Control-Allow-Origin", "*") // 响应首部 Access-Control-Allow-Methods 在对 preflight request.(预检请求)的应答中明确了客户端所要访问的资源允许使用的方法或方法列表。 // 例如Access-Control-Allow-Methods: POST, GET, OPTIONS,使用*代表所有 c.Header("Access-Control-Allow-Methods", "*") // 响应OPTIONS请求 if c.Request.Method == "OPTIONS" { c.JSON(http.StatusOK, nil ) } }