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

Kotlin+SpringBoot配置@CrossOrigin仍出现CORS跨域请求错误如何解决?

问题根因

你遇到的CORS报错核心由3个问题共同导致:

  1. 接口路径不匹配
    你的RequestTest类标注了@RequestMapping("/test"),类下所有接口路径都会自动拼接/test前缀,你写的@RequestMapping("/comment")接口实际的访问路径是http://localhost:8080/test/comment,前端直接请求/comment会得到404响应,而Spring的404响应默认不会携带CORS头,所以触发CORS报错。
  2. 响应解析方式错误
    你的getComment接口返回的是纯字符串,不是JSON格式,前端用response.json()解析会抛出语法错误,即使跨域问题解决了也无法正常拿到返回结果。
  3. 跨域配置和请求配置不匹配(可选)
    你在@CrossOrigin中设置了allowCredentials = "true",如果后续需要请求携带Cookie、HTTP认证信息等身份凭证,前端fetch需要同步添加credentials: 'include'配置,否则跨域配置不会生效。

修复方案

  • 第一步:修改前端请求路径和解析方式,JS代码调整为:
const fetchrequest = () => { 
  fetch('http://localhost:8080/test/comment', {
    credentials: 'include' // 如果不需要携带身份凭证可以删掉这行,同时删掉@CrossOrigin里的allowCredentials配置
  })
  .then(response => response.text()) // 替换json()为text()适配纯文本返回
  .then(data => console.log(data))
}
  • 可选调整:如果需要接口路径为根路径的/comment,可以删除RequestTest类上的@RequestMapping("/test")注解,前端保持请求http://localhost:8080/comment即可。
  • 优化建议:给/comment接口指定请求方法,比如改成@GetMapping("/comment"),避免不必要的HTTP方法支持,降低安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:15:04