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

解决后端跨域问题

目录

一、什么是跨域问题?

1、跨域问题的定义

2、举例

3、为什么会有跨域问题的存在?

二、解决跨域问题

1、新建配置类

2、编写代码

三、结语


一、什么是跨域问题?

1、跨域问题的定义

        跨域问题(Cross-Origin Resource Sharing, CORS)是 Web 开发中常见的安全机制问题,主要发生在浏览器中。当浏览器从一个域名的网页向另一个域名的服务器发起请求时,如果这两个域名不同(协议、域名或端口不同),浏览器会阻止这种请求,这就是跨域问题。

2、举例

跨域是指浏览器从一个 源(Origin) 向另一个  发起请求时,如果这两个源不同,就称为跨域。源由以下三部分组成:

  1. 协议(如 http 或 https
  2. 域名(如 example.com
  3. 端口(如 8080

如果协议、域名或端口中任意一个不同,就属于跨域。例如:

  • http://example.com 和 https://example.com(协议不同)
  • http://example.com 和 http://api.example.com(域名不同)
  • http://example.com 和 http://example.com:8080(端口不同)

3、为什么会有跨域问题的存在?

跨域问题是浏览器的安全机制,称为 同源策略(Same-Origin Policy)。它的目的是防止恶意网站通过脚本访问其他网站的资源,保护用户数据安全。 

二、解决跨域问题

1、新建配置类

2、编写代码

@Configuration//表示这是一个配置类,Spring 容器会在启动时加载该类,并将其中的配置应用到整个应用程序中。
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")///** 表示所有路径都适用该 CORS 规则。你可以根据需要修改为特定的路径,例如 /api/**。.allowedOrigins("*")//表示允许所有来源(域)访问后端资源。* 是一个通配符,表示允许任何域访问。如果你只想允许特定域访问,可以将 * 替换为具体的域名,例如 "http://example.com"。.allowedMethods("GET","POST","PUT","DELETE")//指定允许的 HTTP 方法。这里配置了 GET、POST、PUT 和 DELETE 方法。如果需要支持其他方法(如 PATCH、OPTIONS),可以添加到列表中。.allowedHeaders("*");//allowedHeaders("*") 表示允许所有请求头。如果你只想允许特定请求头,可以将 * 替换为具体的头信息,例如 "Content-Type", "Authorization"。}
}

三、结语

以上就是跨域问题的介绍,以及其中一种解决方案。

如果对本篇文章感兴趣,请关注本博主~~

 

http://www.lryc.cn/news/542629.html

相关文章:

  • 补题A-E Codeforces Round 953 (Div. 2)
  • 【WordPress】发布文章时自动通过机器人推送到钉钉
  • 鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)
  • 管道文件(1)
  • 什么是AI agent技术,有哪些著名案例
  • Cursor结合Claude 3.7零基础开发愤怒的小鸟【深夜Claude 3.7系列发布,类似DeepSeek-R1和V3的合体?】
  • 基于 Python 的天气数据分析与可视化
  • Bybit事件技术分析
  • JavaWeb-在idea中配置Servlet项目
  • redis小记
  • 垂类大模型微调(一):认识LLaMA-Factory
  • 企业为什么要选择软件测试外包公司?湖南软件测试公司有哪些?
  • 数据保护API(DPAPI)深度剖析与安全实践
  • java23种设计模式-桥接模式
  • 3D Web轻量化引擎HOOPS Communicator如何赋能航空航天制造?
  • iOS手机App爬虫- (1) Mac安装Appium真机运行环境
  • android s下make otapackage编译失败
  • 《Elasticsearch实战:从零开始构建高效全文搜索引擎》
  • 【Linux网络】认识协议(TCP/UDP)、Mac/IP地址和端口号、网络字节序、socket套接字
  • 12、数据库、Sql单表多表
  • Spring Boot 实现图片上传并生成缩略图功能
  • 洛谷B3664[语言月赛202209] 零食售卖点
  • 贪心算法:JAVA从理论到实践的探索
  • 线程池10种常见坑
  • 鸿蒙ArkTs如何实现pdf预览功能?
  • KylinSP3 | 防火墙和麒麟安全增强设置KySec
  • 【C++】面试常问八股
  • vscode多文件编译构建(CMake)和调试C++
  • 使用Docker 部署 LNMP+Redis 环境
  • 文件上传漏洞学习笔记