背景:
使用beego开发接口,前端开发调用时,现实因为跨域访问导致失败。 一般api开发使用nginx作为代理转发,配置跨域访问直接修改nginx配置就行,由于自己不想使用nginx,所以直接修改beego配置。
包
下载安装 cors;
go get github.com/astaxie/beego/plugins/cors
说明文档。
https://godoc.org/github.com/astaxie/beego/plugins/cors
配置代码
放在 main.go
中
func main() {
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowOrigins: []string{"http://ip:port"},
AllowMethods: []string{"PUT", "PATCH", "POST", "GET"},
AllowHeaders: []string{"Origin"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true, }))
beego.Run()
defer fmt.Println("end main.....")
}
在 AllowOrigins
中添加 web 前端开发机器的 ip与port 即可。