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

Postman发送POST请求跨域问题及健康检查正则匹配失败排查

问题1:Postman跨域错误原因及修复

你当前的跨域配置存在两处明确错误:

  • 配置冲突:同时配置了全局CorsFilter和控制器类上的@CrossOrigin注解,两套规则会出现优先级覆盖异常,优先保留全局Filter配置即可,删除控制器类上的@CrossOrigin(origins = "*", maxAge = 3600)注解。
  • 规则不符合CORS规范:你在CorsConfiguration中同时配置了setAllowCredentials(Boolean.TRUE)和addAllowedOrigin("*"),按照W3C的CORS规范,允许携带凭证(Cookie、认证头信息)时,不允许使用通配符*作为允许源,需要修改为使用allowedOriginPatterns属性:
// 替换原有的config.addAllowedOrigin("*")
config.setAllowedOriginPatterns(Collections.singletonList("*"));

注:Postman本身默认不会校验跨域规则,你遇到的跨域报错大概率是你手动添加了Origin请求头模拟浏览器跨域场景,按上述修改后即可恢复正常。

问题2:健康检查正则匹配失败原因及修复

你的正则匹配逻辑存在两处核心问题:

  • 路径不匹配:你写的正则规则^.+/abc/[\d]+\.[\d]+/?$要求请求路径必须包含/abc/ + 数字.数字的格式,但你当前的业务接口路径前缀是/gdpr/1.0,完全不符合正则匹配规则,且你配置的认证过滤器仅拦截/abc/*路径的请求,你访问/gdpr/1.0/request接口根本不会进入该过滤器,自然不会触发健康检查匹配逻辑。
  • 如果你需要匹配/gdpr/前缀的版本号路径,可将正则修改为:
private static final Pattern HEALTH_CHECK = Pattern.compile("^.+/gdpr/\\d+\\.\\d+/?$");

如果你需要匹配/abc/前缀的健康检查路径,测试时直接请求对应格式的路径即可,比如http://你的服务地址/abc/1.0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:36:02