27 lines
		
	
	
		
			726 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			726 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package gu
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 
 | |
| 	"github.com/gin-gonic/gin"
 | |
| )
 | |
| 
 | |
| func Cors() gin.HandlerFunc {
 | |
| 	return func(c *gin.Context) {
 | |
| 		method := c.Request.Method
 | |
| 
 | |
| 		c.Header("Access-Control-Allow-Origin", "*")
 | |
| 		c.Header("Access-Control-Allow-Headers", "Content-Type, AccessToken, X-CSRF-Token, Authorization, Token")
 | |
| 		c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS")
 | |
| 		c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
 | |
| 		c.Header("Access-Control-Allow-Credentials", "true")
 | |
| 
 | |
| 		// 放行所有OPTIONS方法
 | |
| 		if method == "OPTIONS" {
 | |
| 			c.AbortWithStatus(http.StatusNoContent)
 | |
| 		}
 | |
| 		// 处理请求
 | |
| 		c.Next()
 | |
| 	}
 | |
| }
 |