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

八零云自助建站免费建站平台个人免费建站系统

八零云自助建站免费建站平台,个人免费建站系统,网络培训seo,wordpress论坛搭建在 Spring Boot 中解决跨域问题(CORS)主要有三种常用方式,下面详细说明每种实现方法: 方案一:全局配置(推荐) 在配置类中实现 WebMvcConfigurer 接口,统一配置所有接口的跨域规则&am…

在 Spring Boot 中解决跨域问题(CORS)主要有三种常用方式,下面详细说明每种实现方法:

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

在配置类中实现 WebMvcConfigurer 接口,统一配置所有接口的跨域规则:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")  // 所有接口// Spring Boot 2.4+ 使用 allowedOriginPatterns.allowedOriginPatterns("*") // 允许的请求方法.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的请求头.allowedHeaders("*") // 是否允许发送Cookie.allowCredentials(true) // 预检请求缓存时间(秒).maxAge(3600); }
}

方案二:控制器注解配置

在单个控制器或方法上使用 @CrossOrigin 注解:

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
// 类级别配置(整个控制器生效)
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
public class UserController {// 方法级别配置(覆盖类配置)@GetMapping("/users")@CrossOrigin(maxAge = 1800)public List<User> getUsers() {return userService.getAllUsers();}
}

方案三:过滤器配置(适合WebFlux或特殊需求)

创建自定义CORS过滤器:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;@Configuration
public class GlobalCorsConfig {@Beanpublic CorsFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();// 允许所有域名(生产环境建议指定具体域名)config.addAllowedOriginPattern("*");// 允许发送Cookieconfig.setAllowCredentials(true);// 允许所有请求头config.addAllowedHeader("*");// 允许所有方法config.addAllowedMethod("*");// 预检请求缓存时间config.setMaxAge(3600L);UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}
}

常见问题解决方案

  1. Credentials 与 Origin 冲突问题

    • 现象:前端携带 Cookie 时报错
    • 解决:
      // 正确配置
      .allowCredentials(true)
      // 使用 allowedOriginPatterns 替代 allowedOrigins
      .allowedOriginPatterns("http://trusted-domain.com") 
      
    • 前端配合:
      fetch(url, {credentials: 'include' // 必须
      })
      
  2. Spring Security 集成问题
    在 Security 配置中启用 CORS:

    @Override
    protected void configure(HttpSecurity http) throws Exception {http.cors() // 启用 CORS.and()// ... 其他安全配置
    }
    
  3. OPTIONS 请求被拦截

    • 确保未手动拦截 OPTIONS 方法
    • 在 Security 配置中添加:
      .antMatchers(HttpMethod.OPTIONS).permitAll()
      
  4. 多配置冲突

    • 优先级:过滤器 > 全局配置 > @CrossOrigin
    • 建议整个项目统一使用一种配置方式

最佳实践建议

  1. 开发环境
    使用全局配置 + allowedOriginPatterns("*") 快速开发

  2. 生产环境

    .allowedOriginPatterns("https://your-domain.com","https://api.your-domain.com"
    )
    
  3. 安全加固

    // 限制允许的请求头
    .allowedHeaders("Content-Type", "X-Requested-With", "Authorization")
    // 暴露特定响应头
    .exposedHeaders("Custom-Header")
    

重要提示

  • Spring Boot 2.4.x+ 必须使用 allowedOriginPatterns 替代旧版 allowedOrigins
  • 开启 allowCredentials(true) 时,禁止使用 allowedOriginPatterns("*")(浏览器安全限制),应指定具体域名
http://www.dtcms.com/wzjs/827047.html

相关文章:

  • 产品商城网站建设工程公司有哪些
  • php购物网站开发文档百度自动搜索关键词软件
  • 加强机关网站建设app介绍类网站模板
  • 宜宾 网站建设大同网站建设制作哪家好
  • 做流量哪个网站好教育门户网站源码
  • 网站开发研发合同access怎么做网站
  • 宣传类的网站有哪些内容毕设DW做网站的过程
  • 怎么注册网站的步骤自有服务器可以做网站吗
  • 设计网站公司湖南岚鸿设计wordpress自带有用参数
  • 网站域名 格式网店美工实训报告总结体会
  • 网站建设策划书模板下载网页工具
  • cnzz站长统计工具网站建设背景及目的
  • 网站经常被挂马自建网站营销
  • 网站备案被注销 接入商wordpress中文完全教程
  • 如何用discuz做网站大连网站设计菲尔莱斯
  • 网站做支付按流量付费外卖平台
  • 旅行网站首页模板专门做孩子早教的网站
  • 网站建站方式wordpress添加样式表
  • nodejs做网站的弊端app软件做得比较好的公司排名
  • 广州割双眼皮网站建设代写平台
  • 招商加盟类网站模板wordpress 评论 邮件
  • 蒙自网站建设都有什么推广平台
  • 鞍山网站设计公司推广普通话手抄报内容大全
  • 做推广类门户网站怎么样搜索引擎 网站推广 举例
  • se 网站优化企业网站备案需要多久
  • 网页设计和网站建设书创意网页设计图
  • 专业网站运营制作公司注册资金实缴新政策出台2024
  • 房山营销型网站制作开发百度广告位价格表
  • 网站服务器备案查询网站小程序开发公司推荐
  • dede网站 远程生成wordpress ajax 提交表单