用beego做后台开发,由于浏览器的同源策略,会遇到跨域问题,比如这种
之前网上搜过很多方法 大多是在main函数或者route人里配置跨域
比如:
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowOrigins: []string{"http://localhost:9090"},
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH"},
AllowHeaders: []string{"Origin", "Auth-Token"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true}))
但是一一试过了 ,都不成功,因为又会遇到预探测请求失败的问题,比如这种
后来着力解决请求头的问题,看到这篇文章: https://www.cnblogs.com/lrj567/p/6141209.html
借鉴了一下,OK,终于解决,写一下配置过程:
先在router中配置与预探测请求
这个预探测请求也要写一个方法,返回数据,配置好运允许访问的源
然后所有涉及到跨域的端口都调用一下这个允许跨域的函数就可以了,其实不调用也可以返回数据的,但是无法返回json格式的数据,如果要返回json格式的数据,还是要调用一下的