背景:
使用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 即可。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐