golang 中间件CORS处理跨域请求
以下是一个简单的Golang中间件示例,用于处理CORS跨域请求:
package main
import (
"net/http"
)
// CORS middleware
func CORS(h 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")
h.ServeHTTP(w, r)
})
}
func main() {
http.Handle("/api", CORS(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, cross-origin!"))
})))
http.ListenAndServe(":8080", nil)
}
这段代码定义了一个CORS函数,它是一个简单的中间件,用于设置CORS相关的响应头。在main函数中,我们使用CORS中间件包装了一个简单的HTTP处理函数,然后将其注册到路由/api
上。这样,任何发往http://localhost:8080/api
的请求都会自动添加CORS头部,允许跨域访问。
评论已关闭