当前位置: 首页 > news >正文

Go基础(⑥Cors)

1. 跨域的定义

只要有一个不同就是跨域

协议不同:http vs https = 跨域
域名不同:localhost vs 192.168.1.1 = 跨域
端口不同:3000 vs 8080 = 跨域

你的项目就是端口不同

前端:http://localhost:3000
后端:http://localhost:8080端口 3000 ≠ 端口 8080 = 跨域!

2. 为什么端口不同就是跨域?

浏览器认为这是不同的网站

http://localhost:3000  ← 浏览器认为这是网站A
http://localhost:8080  ← 浏览器认为这是网站B网站A想访问网站B = 跨域!

项目架构

前端:http://localhost:3000  (Vue 开发服务器)
后端:http://localhost:8080  (Go API 服务器)端口不同 = 跨域!

现代浏览器都会阻止跨域!

✅ Chrome - 阻止跨域
✅ Firefox - 阻止跨域  
✅ Safari - 阻止跨域
✅ Edge - 阻止跨域
✅ Opera - 阻止跨域

3. 具体操作

后端设置(只需要一次)

// 在你的 main.go 里加这几行
r.Use(cors.New(cors.Config{AllowOrigins: []string{"http://localhost:3000"},AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},AllowHeaders: []string{"Origin", "Content-Type", "Accept", "Authorization"},
}))

前端不用改

// 前端代码完全不用改
fetch('http://localhost:8080/api/users').then(response => response.json()).then(data => console.log(data))

为什么没有设置 IP 端口?

// 这样写 = 允许任何网站访问
c.Header("Access-Control-Allow-Origin", origin)// 应该这样写 = 只允许特定网站访问
c.Header("Access-Control-Allow-Origin", "http://localhost:3000")

123

http://www.dtcms.com/a/423694.html

相关文章:

  • 九龙坡区网站建设南宁网站建设速成培训
  • ⸢ 柒 ⸥ ⤳ 可信纵深防御建设方案:a.基线 基础设施可信
  • 山东营销网站建设设计装修网平台
  • android 增强版 RecyclerView
  • HTML 开发工具有哪些?常用 HTML 开发工具推荐、学习路线与实战经验分享
  • 做申诉资料网站外包app开发价格表
  • ChatGPT被降智怎么办?自查方法+恢复指南
  • Linux系统管理文件锁的工具之flock
  • 用DuckDB官方的步骤生成 1.4版插件的问题和解决
  • 如何快速找到与课题相关的高质量文献?
  • 第三十八天:回文数组
  • 字体排版网站做动漫图片的网站
  • springboot个人博客系统的设计与实现(代码+数据库+LW)
  • 软件工程实验三-原型设计
  • Android开发-存储框架技术总结
  • 备案审核网站显示500爱做网站免费
  • 深圳做网站哪家公司比较好而且不贵弄一个网站要多少钱
  • 借助SFTTrainer进行微调 (109)
  • BeanFactory
  • Linux CentOS 7 安装 zip-3.0-11.el7.x86_64.rpm 详细步骤(命令行教程)​(附安装包)
  • VLM Prompt优化之 DynaPrompt(ICLR 2025)论文总结
  • 网站开发和网站制作的区别wordpress如何改成cms
  • 网站首页布局河北手机网站制作价格
  • 负载均衡式的在线OJ项目编写(六)
  • 中止 Web 请求新方式 - AbortController API
  • 做微商如何网站推广需要外包团队做网站怎么提需求
  • 在JavaScript / Node.js中,SQLite异步查询函数实现
  • 数据结构:Map 和 Set (二)
  • 服务网站安徽省建设厅网站备案
  • 从零到一构建现代化 C# 在线编程环境:SharpPad 技术架构深度解析