【问题标题】:React JS with Spring boot API REST使用 Spring Boot API REST 反应 JS
【发布时间】:2019-06-07 06:45:46
【问题描述】:

我有一个使用 React JS 开发的前端 webapp,以及一个使用 Spring boot 构建的 rest API。当我尝试从我的 react-app 访问 API 时,出现 403 错误。我的 API Rest 部署在 tomcat 服务器中。

POST http://localhost:8080/fantasy/api/auth/signin 403
PostData.js:3 Uncaught (in promise) SyntaxError: Unexpected end of JSON input

【问题讨论】:

  • 信息不足
  • 我们需要更多信息才能告诉您一些事情。首先,您可以从您的前端应用程序中向我们提供一些日志。然后,给我们您想要达到的其他端点。此外,请告诉我们您的 rest api 的配置。

标签: reactjs rest spring-boot


【解决方案1】:

您的 ReactJs 应用和 Spring Boot 应用很可能在不同的端口下运行,并且您没有在 Spring Rest 映射方法中配置 CORS 以启用来自 ReactJs 所在的 host:port 的传入请求运行:

@CrossOrigin(origins = "http://localhost:4200")
@GetMapping("/user")
public Greeting getUser(){}

你也可以在Controller本身上定义:

@CrossOrigin(origins = "http://localhost:4200")
@RestController

您还可以为整个应用程序注册一个单独的 CORS 过滤器:reference

【讨论】:

  • 在开发中是个好主意,但如果在生产中我的应用程序更改端口号?
  • 然后使用 CORS 过滤策略。在过滤器中,您从属性文件中注入一个端口号,这对于开发人员和产品来说当然是不同的。
  • 我该怎么做?
  • 我在答案中放了一个参考。查一下
  • 我的 Spring Boot 中的 CORS 过滤策略可能与 Tomcat CORS 配置冲突?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 2020-03-15
  • 2020-04-05
  • 2021-08-28
  • 2019-03-11
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多