You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中@CrossOrigin注解失效的HTTPS跨域问题

解决HTTPS环境下Spring Boot与Angular跨域通信问题

核心原因排查与解决方案

1. 注解字符格式错误

你的代码里@CrossOrigin(origins = “https://frontend.com”)使用了中文双引号,Spring无法正确解析跨域源配置,必须替换为英文双引号。同时注意代码里的笔误:departmentoService应为departmentService,修正后代码如下:

@RestController
@CrossOrigin(origins = "https://frontend.com")
public class Department {

    @Autowired
    DepartmentService departmentService;

    @PostMapping("/input")
    public ResponseEntity<Message> createDepartment(@Valid @RequestBody DepartmentoDto dto) {
        return ResponseEntity.ok(departmentService.save(dto));
    }
}

2. 全局CORS配置替代控制器注解

控制器级别的@CrossOrigin在HTTPS环境下可能因配置优先级或框架拦截失效,建议添加全局CORS配置确保覆盖所有请求:

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("https://frontend.com")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true);
    }
}

HTTPS环境下若需携带Cookie等凭证,必须显式设置allowCredentials: true,同时前端请求要对应配置withCredentials: true。

3. 处理OPTIONS预检请求

HTTPS环境下浏览器会先发送OPTIONS预检请求,若后端安全框架(如Spring Security)拦截了该请求,会导致跨域失败。需放行OPTIONS请求:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()
            .authorizeRequests()
            .antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
            .anyRequest().authenticated();
    }
}

4. 检查HTTPS配置与证书

  • 确认后端Spring Boot的HTTPS配置完整,证书有效且被前端浏览器信任(自签名证书需手动添加信任)
  • 直接用浏览器访问后端HTTPS接口,验证服务是否正常响应,排除证书或端口配置错误

5. Apache2代理干扰排查

若前端Apache2配置了反向代理后端,检查Apache是否修改或移除了CORS响应头,确保相关Header指令不会干扰跨域头的返回。

额外检查点

  • 修正前端请求地址的拼写错误:报错中出现https://backend/iput,实际应为https://backend/input
  • 清空浏览器缓存后重新测试,避免缓存导致的旧配置生效

内容的提问来源于stack exchange,提问作者Name1 Name2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:43:14