Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于如何处理gin框架前端请求跨域

关于如何处理gin框架前端请求跨域

作者头像
是小张啊喂
发布于 2022-08-18 09:28:45
发布于 2022-08-18 09:28:45
83000
代码可运行
举报
文章被收录于专栏:软件软件
运行总次数:0
代码可运行

关于如何处理gin框架前端请求跨域?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Cors 跨域
func Cors() gin.HandlerFunc {
   return func(c *gin.Context) {
      if c.Request.Header.Get("Origin") != "" {
         c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名
         c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
         c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
         c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")
         c.Header("Access-Control-Allow-Credentials", "true")
         c.Set("content-type", "application/json")
      }

      if c.Request.Method == http.MethodOptions {
         c.AbortWithStatus(http.StatusNoContent)
      }
      c.Next()
   }

}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func main() {
   r := gin.Default()
   // 中间件 处理跨域 
   r.Use(middlewares.Cors())
   port := config.Config.Server.Port
   if port != "" {
      panic(r.Run(":" + port))
   }
   r.Run(config.Config.Server.Port) // listen and serve on 0.0.0.0:8080
}

注意:需要将 r.Use(middlewares.Cors()) 在使用路由前进行设置,否则会导致不生效

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从0开始,用Go语言搭建一个简单的后端业务系统
Hello 小伙伴们,今天给大家带来了一份Go语言搭建后端业务系统的教程,restful风格哦,既然是简单的业务系统,那么必要的功能就少不了增删改查,也就是传说中的CRUD,当然相比Spring Boot而言,Go语言写后端业务系统不是那么的流行,但是对比一下我们也很容易能发现,Go语言搭建的Web后端系统的优势:
闫同学
2023/10/11
5810
Go | Gin 解决跨域问题跨域配置
在 Gin 中提供了 middleware (中间件) 来做到在一个请求前后处理响应的逻辑,这里我们使用中间来做到在每次请求是添加上 Access-Control-Allow-Origin 头部
双鬼带单
2020/08/27
6.6K0
Go | Gin 解决跨域问题跨域配置
Golang的Gin框架解决跨域问题
首先创建一个返回gin.HandlerFunc的函数 func cors() gin.HandlerFunc { return func(c *gin.Context) { method := c.Request.Method c.Header("Access-Control-Allow-Origin", "*") c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X
双面人
2021/04/19
8320
Go | Gin 解决跨域问题跨域配置
CORS 全称 Cross-Origin Resource Sharing,中文翻译为 跨域资源共享。CORS 可以看做web服务器和浏览器之间的协议, web服务器声明限制内容,浏览器解析并实施限制。
刘銮奕
2020/12/14
7.2K1
gin 跨域问题
跨域请求时需要考虑到options请求,这种请求需要直接返回200。在跨域前,会首先发出options请求,然后通过后,浏览器才会真正的发送跨域的请求。
Java架构师必看
2021/05/14
1K0
Golang快速开发框架——所有请求增加option接口便于前后端分离(九)
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
cn華少
2022/03/04
6110
GIN框架解决跨域问题
当两个域具有相同的协议(如http), 相同的端口(如80),相同的host,那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。
Porco1Rosso
2020/05/28
4.1K0
GIN框架解决跨域问题
Golang 跨域
跨域指的是浏览器不能执行其他网站或域名下的脚本。之所以形成跨域,是因为浏览器的同源策略造成的,是浏览器对javascript程序做的安全限制,现在所有支持JavaScript 的浏览器都会使用这个策略。
孤烟
2020/09/27
1.2K0
知识分享之Golang——Gin学习之开放所有接口的OPTION方法
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
cn華少
2021/12/10
1.8K0
再来一篇,Go+Vue前后端分离设计实践
在之前我曾写过一篇文章《手把手教你搭建Spring Boot+Vue前后端分离》,讲述了如何使用当下流行的Java后端框架Spring Boot和前端框架Vue来进行前后端分离设计,以及什么是前后端分离、跨越问题和设计流程等等,当时还是一名妥妥的Javaer,可是时过境迁,现在的我已然是一名十分活跃的Gopher,成为Gopher一段时间之后再回头看Java的代码,有三个问题甚是不解:
闫同学
2023/09/23
1.4K0
k8sailor - 08 使用 vue 获取后台 API 数据并展示
创建 /webapp/src/apis 目录, 用于存放所有针对 k8sailor 后端的数据请求
老麦
2022/12/24
1.2K0
k8sailor - 08 使用 vue 获取后台 API 数据并展示
10 种CORS跨域解决方案
这是一个老生常谈的话题,以前我觉得这种基础文章没有什么好写的,最近为了线上问题深入了解底层,确实有点东西,下面汇总成10种方案。
sunsky
2022/09/09
7.3K0
10 种CORS跨域解决方案
跨域共享CORS详解及Gin配置跨域
跨域简介 当两个域具有相同的协议(如http), 相同的端口(如80),相同的host,那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。 跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的(例如一般情况跨域的JavaScript无法交互,当然有很多解决跨域的方案) 解决跨域几种方案 /* CORS 普通跨域请求:只服务端设置Access-Control-Allow-Origin即可, 前端无须设置,若要带cookie请求:前后端都需要设置。
iginkgo18
2020/12/01
1.8K0
基于Gin + GORM + Vue的前后端分离项目实践
昨天我们介绍了前后端结合将数据持久化的基础流程,将后端的数据库的表信息渲染到前端页面上,将前端提交的表信息发送到后端处理,对数据库的表信息进行增删改查,因为昨天还没有搭建数据库,就没具体演示,今天使用docker搭建一个mysql数据库,然后使用后端gorm框架操作mysql数据库。
希里安
2023/10/30
5990
基于Gin + GORM + Vue的前后端分离项目实践
浅学前端:跨域问题
运行在http://localhost:8082端口的前端服务器express和运行在http://localhost:8080端口的后端服务器golang net/http。前端的javaScript代码使用fetch()函数发起一个到http://localhost:8080/api/students的请求。
传说之下的花儿
2023/11/10
4651
浅学前端:跨域问题
03 . Gin+Vue开发一个线上外卖应用(用户数据创建,插入,跨域处理)
通过定义Member结构体,表示应用的用户信息。通过TAG中的xorm来指定结构体在数据库表中的约束。
iginkgo18
2020/11/12
5020
03 . Gin+Vue开发一个线上外卖应用(用户数据创建,插入,跨域处理)
【测试平台系列】第一章 手撸压力机(七)- 使用gin
在项目根目录新建一个routers目录,并在routers目录下新建:cors.go router.go router_group.go三个文件。
被测试耽误的大厨
2023/11/27
2070
【测试平台系列】第一章 手撸压力机(七)- 使用gin
Gin CORS 跨域请求资源共享与中间件
请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同,只要协议、域名和端口任意一个不同,都是跨域请求。
贾维斯Echo
2024/01/11
5010
Gin CORS 跨域请求资源共享与中间件
Go 语言 Web 编程系列(九)—— 基于 gorilla/mux 包实现路由匹配:通过 CORS 处理跨域请求
在 SPA 应用或者其他前后端分离应用中,如果前后端域名不一致,则可能涉及到跨域请求问题。
学院君
2020/03/20
1.7K0
Go 语言 Web 编程系列(九)—— 基于 gorilla/mux 包实现路由匹配:通过 CORS 处理跨域请求
b站1024安全攻防挑战赛
getFormatter 这里就要返回 array(new Action(), 'run') 来让 call_user_fun_array 触发 run 函数,即 Content 里有 $this->formatters = array('close'=>array(new Action(), 'run'))
pankas
2022/11/11
9620
b站1024安全攻防挑战赛
相关推荐
从0开始,用Go语言搭建一个简单的后端业务系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验