golang 跨域请求
时间: 2023-11-25 13:07:44 浏览: 94
golang实现跨域访问的方法
在Golang中,可以使用net/http包来处理跨域请求。具体实现方法如下:
```go
package main
import (
"net/http"
)
func main() {
// 创建一个处理跨域请求的函数
cors := func(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", "POST, GET, OPTIONS, PUT, DELETE")
w.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
// 如果是OPTIONS请求,则直接返回
if r.Method == "OPTIONS" {
return
}
// 处理请求
h.ServeHTTP(w, r)
})
}
// 创建一个处理请求的函数
handler := func(w http.ResponseWriter, r *http.Request) {
// 处理请求
// ...
}
// 创建一个服务器
server := &http.Server{
Addr: ":8080",
Handler: cors(http.HandlerFunc(handler)),
}
// 启动服务器
server.ListenAndServe()
}
```
上述代码中,我们首先创建了一个处理跨域请求的函数`cors`,该函数会设置响应头部信息,并处理OPTIONS请求。然后,我们创建了一个处理请求的函数`handler`,该函数会处理实际的请求。最后,我们创建了一个服务器,并将处理跨域请求的函数和处理请求的函数传递给服务器。启动服务器后,就可以处理跨域请求了。
阅读全文