cors.go 927 B

1234567891011121314151617181920212223
  1. package api
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "net/http"
  5. )
  6. // Cors Gin跨域处理中间件
  7. func Cors() gin.HandlerFunc {
  8. return func(c *gin.Context) {
  9. method := c.Request.Method
  10. c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名
  11. c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
  12. c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, access-control-allow-origin")
  13. c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")
  14. c.Header("Access-Control-Allow-Credentials", "true")
  15. c.Header("Cache-Control", "no-cache") // 静态文件不走缓存使用
  16. if method == "OPTIONS" { // 放行所有Options请求
  17. c.AbortWithStatus(http.StatusNoContent)
  18. }
  19. c.Next()
  20. }
  21. }