vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue3和beego跨域请求配置

vue3和beego跨域请求配置方式

作者:qq_33805862

文章介绍了如何在Vue3和Beego中配置跨域请求,在Beego的router.go文件的init函数中添加option函数来回应预检请求,以支持跨域请求,这是个人经验分享,希望能帮助到大家

vue3和beego跨域请求配置

在router.go的init 函数内添加

如下内容:

func init() {
	//跨域设置
	var FilterGateWay = func(ctx *context.Context) {
		ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
		//允许访问源
		ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS")
		//允许post访问
		ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "Access-Control-Allow-Origin,ContentType,Authorization,accept,accept-encoding, authorization, content-type") //header的类型
		ctx.ResponseWriter.Header().Set("Access-Control-Max-Age", "1728000")
		ctx.ResponseWriter.Header().Set("Access-Control-Allow-Credentials", "true")
	}
	beego.InsertFilter("*", beego.BeforeRouter, FilterGateWay)
	//路由设置
	ns := beego.NewNamespace("/v1",
		// NBSP用于跨域请求
		beego.NSRouter("*", &controllers.BaseController{}, "OPTIONS:Options"))
	beego.AddNamespace(ns)
//=======================    下面再写自己的代码    =======================
beego.Router("/", &controllers.MainController{})
// .....
}

定义option函数回应预检请求(controller中)

// @Title test
// @Description 预检
// @Success 200 {string} "hello world"
// @router / [options]
func (c *BaseController) Options() {
    c.Data["json"] = map[string]interface{}{"status": 200, "message": "ok", "moreinfo": ""}
    c.ServeJSON()
}
//===============	下面再写自己的代码		=======================
// .....

跨域请求是会先发送一个option请求,该请求如果收到响应(响应内容随便),客户端则才会继续发送请求

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文