golang gin框架构建websocket链接 请求报错 request origin not allowed by Upgrader.CheckOrigin
·
1、问题背景
使用golang gin框架开发websockt链接接口,使用的websocket库是 “github.com/gorilla/websocket”,前端使用vue,postman测试接口没问题,前端同事本地请求报错(request origin not allowed by Upgrader.CheckOrigin:403).
2、出错原因
前端同事在本地调试代码,会启动代理工具,代理线上接口域名,所以此处请求存在跨域,如果是跨域请求的时候会报这个错误:
request origin not allowed by Upgrader.CheckOrigin
3、后端错误配置
var upgrader = websocket.Upgrader{}
func NewKefuServer(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
conf.Logger.Error("upgrade", zap.Error(err))
return
}
db, err := client.GetDbClient()
if err != nil {
conf.Logger.Error("db err", zap.Error(err))
return
}
}
4、正确配置
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
// 解决跨域问题
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func NewKefuServer(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
conf.Logger.Error("upgrade", zap.Error(err))
return
}
db, err := client.GetDbClient()
if err != nil {
conf.Logger.Error("db err", zap.Error(err))
return
}
}
更多推荐
所有评论(0)