Beego服务器中出现'No'Access-Control-Allow-Origin'header...”错误,是否配置错误?
创始人
2024-11-27 22:31:14
0

出现该错误的原因是因为跨域访问请求的source与服务器端的Access-Control-Allow-Origin不一致,需要在Beego服务器端进行相关配置。以下是一些代码示例,可以作为参考:

  1. 在路由器路由函数中添加以下代码,可以通过允许所有来源实现跨域访问,但这并不安全:

func (this RouterController) Get() { this.Ctx.ResponseWriter.Header().Set("content-type", "application/json") this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "") // your code here }

  1. 也可以将设置Access-Control-Allow-Origin的代码封装到一个中间件中:

package middleware

import ( "github.com/astaxie/beego/context" )

func Cors() func(ctx *context.Context) { return func(ctx *context.Context) { ctx.Output.Header("Access-Control-Allow-Origin", "http://localhost:3000") // 更改此处为你的源地址 ctx.Output.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") ctx.Output.Header("Access-Control-Allow-Credentials", "true") ctx.Output.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization") if ctx.Request.Method == "OPTIONS" { ctx.Output.Status = 200 } } }

  1. 在Beego的配置文件中添加cors参数:

"web" : { "httpport" : 8080, "enablegzip" : false, "staticdir" : "static", "templatepath" : "views", "sessionon" : true, "sessiongcmaxlifetime" : 3600, "sessionprovider" : "memory", "sessionname" : "sessionid", "sessioncookiepath" : "/", "sessioncookielifeetime" : 0, "cors": { // 添加此处配置 "alloworigins": ["http://localhost:3000"], "allowmethods": ["POST", "GET", "OPTIONS", "PUT", "DELETE"], "allowheaders": ["Origin", "Content-Type", "AccessToken", "X-CSRF-Token", "Authorization"], "exposeheaders": ["Content-Length", "Access-Control-Allow-Origin"], "maxage": 1728000 } }

以上就是解决'No 'Access-Control-Allow-Origin' header...”问题的几种方法,可以根据实际情况进行选择。

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
怎么复制照片安卓系统,操作步骤... 亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...