用go实现cors中间件
warning:
这篇文章距离上次修改已过192天,其中的内容可能已经有所变动。
CORS是一个跨域资源共享的标准,它允许服务器明确地指定哪些web页面可以访问它的资源。在Go中实现CORS中间件,你可以创建一个中间件函数,该函数设置必要的CORS头部。以下是一个简单的CORS中间件实现:
package main
import (
"net/http"
)
// CORS middleware
func CORS(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
next.ServeHTTP(w, r)
})
}
func main() {
http.Handle("/", CORS(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, CORS!"))
})))
http.ListenAndServe(":8080", nil)
}
在这个例子中,CORS函数返回一个http.HandlerFunc,它在响应头中设置了CORS所需的头部。Access-Control-Allow-Origin
设置为*
表示允许任何源,你也可以将其设置为特定的域。Access-Control-Allow-Methods
设置允许的HTTP方法,Access-Control-Allow-Headers
设置允许的自定义头部。
然后,你可以将任何http.Handler传递给CORS函数,它会在处理请求时添加CORS头部。在main函数中,我们创建了一个简单的HTTP服务器,它在根路径处理请求,并添加了CORS支持。
评论已关闭