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

建设部城市管理监督局网站网站为什么改版

建设部城市管理监督局网站,网站为什么改版,网站流量下滑,网站优化主旨文章目录 一、引言:跨域问题的本质与解决方案分类解决方案分类二、方案一:`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/819818.html

相关文章:

  • 成都网站建设制作设计常见的制作网站的工具
  • 公司的宣传网站应该怎么做石家庄做网站排名公司
  • 花都网站 建设信科网络信融网站建设网站开发
  • 网站开发后台注意事项网页设计与制作实例教程第2版答案
  • 一家做公司点评网站开发工具eclipse
  • 专业建设外贸网站制作wordpress笔记主题
  • 免费建站团队网络服务器是指
  • 西安网站建设百度网盘登录入口官网
  • 网站名称跟域名网站建设短期培训
  • 网站建设怎么用wordpress游戏插件
  • 网站优化基础常见的网站类型有
  • 怎么样管理网站wordpress本地化
  • 做网站点击量有用吗2022年一建考试最新消息
  • 泉州晋江网站建设费用深圳网站seo优化排名公司
  • 舟山建设企业网站简单大气好记的公司名称
  • 毕业设计做网站用什么软件清远建设网站制作
  • 搜书网站 怎么做网站第一步建立
  • 名匠装饰郑州seo优化外包热狗网
  • 网络营销工作之企业官方网站建设篇长春市招标网
  • destoon 网站搬家怎么用自己主机做网站、
  • 手机网站建设策划书网上注册公司在哪办
  • 南京网站销售手表之家官网
  • 做摄影网站的目的是什么意思在线设计的网站
  • 怎么生成网站地图腾讯网页游戏排行榜
  • asp网站栏目修改天安节能科技园公司做网站
  • 有意思网站推荐为什么wordpress样式无效
  • 安阳网站制作价格北京城乡建设部网站首页
  • 北京网站制作培训班网络推广的网站有哪些
  • app 网站 同时做高端网站制作模板
  • 做网站的步骤 主题建设电商网站哪个平台比较好