你是如何解决go语言框架 gin跨域问题 的 ?

我们在做前后端分离的项目,时常会听到跨域问题。经常看到有人的文章标题写着: 前端支持跨域,但显然也只是个噱头而已。

跨域的概念,本人才疏学浅,就不多说了。大家有兴趣可以搜搜相关的介绍。

今天就聊一聊在go的web框架gin里面怎么解决跨域问题,以及在实践过程中踩的坑。大概已经抄了mdnice一小部分功能了,差个图床和目录就差不多好了。它大概长这样:

图片

还不太完善,有一些样式也没优化到位,说实话还是mdnice好用更多

 

解决方案

在go中的gin需要跨域中间件,使用Use()可以把它看中间件.

在入口文件写入

func Cors() gin.HandlerFunc {
    return func(context *gin.Context) {
        method := context.Request.Method
        context.Header("Access-Control-Allow-Origin""*")
        context.Header("Access-Control-Allow-Headers""Content-Type,AccessToken,X-CSRF-Token, Authorization, Token")
        context.Header("Access-Control-Allow-Methods""POST, GET, OPTIONS")
        context.Header("Access-Control-Expose-Headers""Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
        context.Header("Access-Control-Allow-Credentials""true")
        if method == "OPTIONS" {
            context.AbortWithStatus(http.StatusNoContent)
        }
        context.Next()
    }
}

在main.go入口文件

func main() {

    router := gin.Default()

    router.Use(Cors()) //解决跨域

    gin.SetMode(gin.DebugMode) //开启dug
    router.Run(":8000") //映射端口
}

重新执行再次尝试请求即可

 

参考链接:https://blog.csdn.net/weixin_58425109/article/details/122624951

更多相关Go语言的技术文章或视频教程,请关注本公众号获取并查看,感谢你的支持与信任!

posted @   技术颜良  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-07-18 Android之adb安装busybox使用wget、telnet等服务
2022-07-18 linux升级openssh及其相关问题解决方法
2022-07-18 linux系统日志保存天数
2022-07-18 redis重点是 dir 的默认配置一定要改
2022-07-18 redis优雅关闭,确记强行kill -9
2019-07-18 Django学习笔记009-django models进行数据库增删查改
点击右上角即可分享
微信分享提示