-
Notifications
You must be signed in to change notification settings - Fork 0
/
cross.go
42 lines (38 loc) · 1.32 KB
/
cross.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// 处理 cross 配置
package main
var (
defaultCorsOrigins = []string{"*"}
defaultCorsMethods = []string{"GET", "HEAD", "POST"}
defaultCorsHeaders = []string{"Accept", "Accept-Language", "Content-Language", "Origin"}
)
const (
corsOptionMethod string = "OPTIONS"
corsAllowOriginHeader string = "Access-Control-Allow-Origin"
corsExposeHeadersHeader string = "Access-Control-Expose-Headers"
corsMaxAgeHeader string = "Access-Control-Max-Age"
corsAllowMethodsHeader string = "Access-Control-Allow-Methods"
corsAllowHeadersHeader string = "Access-Control-Allow-Headers"
corsAllowCredentialsHeader string = "Access-Control-Allow-Credentials"
corsRequestMethodHeader string = "Access-Control-Request-Method"
corsRequestHeadersHeader string = "Access-Control-Request-Headers"
corsOriginHeader string = "Origin"
corsVaryHeader string = "Vary"
corsOriginMatchAll string = "*"
)
// 解析传入的配置文件
type Cross struct {
AllowedHeaders []string
AllowedMethods []string
AllowedOrigins []string
ExposedHeaders []string
MaxAge int
IgnoreOptions bool
AllowCredentials bool
}
func DefaultCross() *Cross {
return &Cross{
AllowedOrigins: defaultCorsOrigins,
AllowedMethods: defaultCorsMethods,
AllowedHeaders: defaultCorsHeaders,
}
}