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

晋城建设局官方网站seo在线诊断工具

晋城建设局官方网站,seo在线诊断工具,梅河口信息网,wordpress怎么更换网站logo文章目录 一、引言:跨域问题的本质与解决方案分类解决方案分类二、方案一:`WebMvcConfigurer` 全局配置(推荐)1. 核心代码(你提供的 `CorsConfig` 示例)2. 代码详解3. 优点4. 注意事项三、方案二:`CorsFilter` 过滤器配置(传统方式)1. 核心代码(你提供的 `ResourcesC…

文章目录

    • 一、引言:跨域问题的本质与解决方案分类
      • 解决方案分类
    • 二、方案一:`WebMvcConfigurer` 全局配置(推荐)
      • 1. 核心代码(你提供的 `CorsConfig` 示例)
      • 2. 代码详解
      • 3. 优点
      • 4. 注意事项
    • 三、方案二:`CorsFilter` 过滤器配置(传统方式)
      • 1. 核心代码(你提供的 `ResourcesConfig` 示例)
      • 2. 代码详解
      • 3. 优点
      • 4. 注意事项
    • 四、方案三:`@CrossOrigin` 注解配置(局部控制)
      • 1. 核心代码
      • 2. 代码详解
      • 3. 优点
      • 4. 缺点
    • 五、三种方案的对比与选择建议
    • 六、安全最佳实践
      • 1. 禁用危险组合
      • 2. 细化允许的 Header 和 Method
      • 3. HTTPS 强制要求
      • 4. 预检请求(OPTIONS)处理
    • 七、附录:完整配置示例(结合三种方案)
      • 1. `WebMvcConfigurer` 分层配置
      • 2. `CorsFilter` 过滤器配置
      • 3. `@CrossOrigin` 注解配置

一、引言:跨域问题的本质与解决方案分类

在前后端分离开发中,跨域问题是开发者必须面对的核心挑战之一。浏览器的同源策略(Same-Origin Policy)会拦截不同协议(HTTP/HTTPS)、不同域名或不同端口的请求,导致如下错误:

Access to fetch at 'http://api.example.com' from origin 'http://localhost:3000' has been blocked by CORS policy.

解决方案分类

  1. 注解配置:通过 @CrossOrigin 注解实现局部接口的跨域控制。
  2. 全局配置:通过 WebMvcConfigurer 统一管理所有接口的跨域规则。
  3. 过滤器配置:通过 CorsFilter 实现基于 Servlet 的低层跨域控制。

本文将结合你提供的两个代码片段(CorsConfigResourcesConfig),深入解析其原理,并补充第三种方案(@CrossOrigin 注解),帮助你全面掌握跨域问题的解决方案。


二、方案一:WebMvcConfigurer 全局配置(推荐)

1. 核心代码(你提供的 CorsConfig 示例)

@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOriginPatterns("*").allowCredentials(true).allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH").maxAge(3600);}
}

2. 代码详解

  • addMapping("/**")
    对所有路径(/**)启用跨域配置。
  • allowedOriginPatterns("*")
    允许任意域名访问(通配符 *)。注意:若启用 allowCredentials(true),必须明确指定域名,不能使用 *
  • allowCredentials(true)
    允许客户端携带 Cookie 或 Token 等凭证(需与 allowedOrigins 严格匹配,否则会引发安全漏洞)。
  • allowedMethods(...)
    明确允许的 HTTP 方法(如 GET、POST 等)。
  • maxAge(3600)
    预检请求(OPTIONS)的缓存时间,单位为秒(3600 = 1小时)。

3. 优点

  • 集中管理:统一配置所有接口的跨域规则。
  • 路径分层控制:支持对不同路径设置不同策略(如 /public/** 允许所有来源,/private/** 限制来源)。
  • Spring MVC 原生支持:与 Spring Boot 深度集成,无需额外依赖。

4. 注意事项

  • 避免 allowedOriginPatterns("*") + allowCredentials(true):此组合可能导致 CSRF 攻击。
  • 版本兼容性allowedOriginPatterns(...) 是 Spring 5.3+ 引入的方法,低版本需改用 allowedOrigins(...)

三、方案二:CorsFilter 过滤器配置(传统方式)

1. 核心代码(你提供的 ResourcesConfig 示例)

@Configuration
public class ResourcesConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 资源映射配置(可选)}/*** 跨域配置*/@Beanpublic CorsFilter corsFilter(
http://www.dtcms.com/wzjs/300295.html

相关文章:

  • 网站代理制作立即优化在哪里
  • 网站制作优势网络推广平台都有哪些
  • wordpress出站链接5118数据分析平台官网
  • 国外手机网站模板优化器
  • 肇庆网站优化建设新闻 今天
  • 最好看中文字幕国语电影下载优化大师
  • 全国住房和城乡建设委员会门户网站推广哪个平台好
  • 网站标题 关键字品牌推广与传播
  • 烟台做网站多少钱站长工具seo综合查询怎么关闭
  • 慈善系统网站建设需求seo常用工具有哪些
  • 烟台网站制作效果资源
  • 怎么查看网站收录百度优化是什么意思
  • 代理商门户网站开发平谷头条新闻
  • 护肤品主题网站怎么做何鹏seo
  • 制作app软件的公司泉州关键词优化排名
  • 网站评论回复如何做网站怎么提升关键词排名
  • 荣成市有做网站的吗广州seo外包公司
  • 网站制作企邯郸网站优化公司
  • 开个做网站要多少钱自动发帖软件
  • 武汉做营销型网站推广网络营销工具包括
  • 什么服装网站做一件代发设计网站的软件
  • 江苏网站建设sem优化托管公司
  • 帮我们做网站的人找不到了小广告怎么能弄干净
  • ipv6跟做网站有关吗软文推广公司
  • 可以做用户调研的网站会计培训机构排名前十
  • 网站建设的定位是什么网站建设合同模板
  • 天津定制网站建设公司如何发布自己的广告
  • 28网站制作百度seo插件
  • discuz论坛门户网站模板百度推广网站
  • 甘肃第九建设集团公司网站中国国家培训网官网入口