代码拉取完成,页面将自动刷新
package cors
import (
"strconv"
"strings"
)
type CORS map[string]string
// NewCors 创建一个跨域头配置
func NewCors() CORS {
c := make(CORS)
// 允许访问的域
c["Access-Control-Allow-Origin"] = "*"
// 允许跨域请求的方法
c["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE, OPTIONS"
// 允许的所有头信息字段,不限于浏览器在"预检"中请求的字段
c["Access-Control-Allow-Headers"] = "*"
// 允许将对请求的响应暴露给页面
c["Access-Control-Allow-Credentials"] = "false"
// 可选,用来指定本次预检请求的有效期,单位为秒,即在此期间,不用发出另一条预检请求
c["Access-Control-Max-Age"] = "1728000"
return c
}
func (own CORS) AllowCredentials() CORS {
own["Access-Control-Allow-Credentials"] = "true"
return own
}
func (own CORS) SetMaxAge(expire int) CORS {
own["Access-Control-Max-Age"] = strconv.Itoa(expire)
return own
}
func (own CORS) AllowOrigins(origins ...string) CORS {
if len(origins) == 0 {
return own
}
return own.modify("Access-Control-Allow-Origin", origins...)
}
func (own CORS) AllowMethods(methods ...string) CORS {
if len(methods) == 0 {
return own
}
return own.modify("Access-Control-Allow-Methods", methods...)
}
func (own CORS) AllowHeaders(headers ...string) CORS {
if len(headers) == 0 {
return own
}
return own.modify("Access-Control-Allow-Methods", headers...)
}
func (own CORS) ExposeHeaders(headers ...string) CORS {
if len(headers) == 0 {
return own
}
return own.modify("Access-Control-Expose-Headers", headers...)
}
func (own CORS) modify(field string, values ...string) CORS {
var builder strings.Builder
for _, v := range values {
builder.WriteString(v)
builder.WriteString(", ")
}
s := builder.String()
own[field] = s[:len(s)-2]
builder.Reset()
return own
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。